Below is a shar with a diff to btxbst.doc and biblist.bst. btxbst.doc is renamed to itibst.doc. Enjoy. -- Joachim // PLEASE NOTE CHANGE OF EMAIL ADDRESS !! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================ snip snap ======================================== #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'itibst.diff' <<'END_OF_FILE' X*** 1.1 1991/10/15 10:34:27 X--- itibst.doc 1992/01/13 14:00:36 X*************** X*** 1,54 **** X! % BibTeX `plain' family X! % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. X! % Copyright (C) 1985, all rights reserved. X! % Copying of this file is authorized only if either X! % (1) you make absolutely no changes to your copy, including name, or X! % (2) if you do make changes, you name it something other than X! % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. X! % This restriction helps ensure that all standard styles are identical. X! % The file btxbst.doc has the documentation for this style. X! % Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in X! % these standard styles or in this documentation file. X % X! % This is file btxbxt.doc; it helps document bibliography styles, X % and is also a template file that you can use to make X % several different style files, if you have access to a C preprocessor. X! % For example, the standard styles were made by doing something like X! % cpp -P -DPLAIN btxbst.doc plain.txt X! % cpp -P -DUNSRT btxbst.doc unsrt.txt X! % cpp -P -DALPHA btxbst.doc alpha.txt X! % cpp -P -DABBRV btxbst.doc abbrv.txt X! % and then renaming after removing unwanted comments and blank lines. X! % If you don't have access, X! % you can edit this file by hand to imitate the preprocessor, X! % with the following explanation of the C preprocessor constructs used here. X! % X! % The output of the preprocessor is the same as the input, except that certain X! % lines will be excluded (and some blank lines will be added). The sequence X! % #if VAR X! % lines to be included when VAR is not zero X! % #else X! % lines to be included when VAR is zero X! % #endif X! % (with the #-signs appearing in column 1) means that one set or the other of X! % the lines are to be included depending on the value of VAR. X! % The #else part is optional. Comments can be added after #else and #endif. X! % Variables can be set by X! % #define VAR value X! % and one can also use #ifdef VAR to see if VAR has any value, and #ifndef X! % to see if it has none. X! % Another #if form used in this file is #if !VAR, which includes the lines X! % after the #if only if VAR is zero. X! % X! % Convention: Use all uppercase identifiers for these preprocessor variables X! % so you can spot them easily X! % X! % The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA X! % or ABBRV (though PLAIN will be used by default if none is given), X! % and the following lines will set various boolean variables to control the X! % various lines that are chosen from the rest of the file. X! % Each boolean variable should be set true (1) or false (0) in each style. X! % Here are the current variables, and their meanings: X % LAB_ALPH: an alphabetic label is used (if false then a numeric X % label is used) X % SORTED: the entries should be sorted by label (if nonnumeric) X--- 1,71 ---- X! %% $Id: itibst.doc,v 1.3 1992/01/13 13:59:34 schrod Exp schrod $ X! %%---------------------------------------------------------------------- X! %% BibTeX `THD/ITI' family of bibliography styles X! %% The file itibst.doc has the documentation for this style. X! %% Please notify Joachim Schrod (schrod@iti.informatik.th-darmstadt.de) of X! %% any bugs in these styles or in this documentation file. X! %% X! %% CAVEAT: This is experimental software in an alpha-test version. X! %% The documentation is not complete, installation instructions X! %% are missing (or perhaps not updated), etc. Please send X! %% bug reports (and, of course, repairs) to me, but do not expect X! %% that I will react very soon. I will collect the stuff and will X! %% incorporate it at a later date. X! %% X! % X! % $Log: itibst.doc,v $ X! % Revision 1.3 1992/01/13 13:59:34 schrod X! % In biblist style titles will not be lowered. The user should see X! % what's in the database. X! % X! % The Id tag is now propagated to the styles. One must see from which X! % version they were created. X! % X! % Replaced function format.annote with output.annote. The former X! % concatenated the annote field which yielded an overflow of the X! % global-string-size (at max. 1000). X! % Well, I learned now that fields which might be very large (ie, X! % more than 1000 chars) must not be used with operations like "*", only X! % with functions like empty$, write$, etc. Of course, these arbitrary X! % limits are not documented... X! % (This error was pointed out by Joseph Gil .) X! % X! % Revision 1.2 1991/10/15 10:35:32 schrod X! % added support for GERMAN, ISBN, ANNOTATE, and LIBRARY. X! % added REFERENCE. X! % added styles ALPH_ABBRV and BIBLIST. X! % defined ATIT_LOWER conditionally. X % X! % checked in for alpha distribution. X! % X! % X! % This is file itibst.doc; it helps document bibliography styles, X % and is also a template file that you can use to make X % several different style files, if you have access to a C preprocessor. X! % X! % identifiers: X! % X! % UNSRT bst unsrt: numbers, unsorted, unabbreviated X! % ALPHA bst alpha: short alphabetics, sorted, unabbreviated X! % ABBRV bst abbrv: numbers, sorted, abbreviated X! % ALPH_ABBRV bst alph-abbrv: short alphabetics, sorted, abbreviated X! % PLAIN bst plain: numbers, sorted, unabbreviated X! % (all 5 by default with lowered titles) X! % X! % BIBLIST bst biblist: for listings of bib files, X! % cite keys, unsorted, unabbreviated, not lowered X! % (defines REFERENCE and sets ATIT_LOWER to 0) X! % X! % GERMAN not-lowered titles X! % german texts (not complete!!!) X! % REFERENCE sets ISBN, ANNOTATE, LIBRARY X! % X! % ISBN adds support for ISBN and ISSN X! % ANNOTATE adds support for annotations X! % LIBRARY adds support for library info X! % X! % X! % in fact, the following identifiers are used internally: X % LAB_ALPH: an alphabetic label is used (if false then a numeric X % label is used) X % SORTED: the entries should be sorted by label (if nonnumeric) X*************** X*** 57,114 **** X % NAME_FULL: the authors, editors, etc., get the full names as X % given in the bibliography file (if false, the first X % names become initials) X- % ATIT_LOWER: titles of non-"books" (e.g., articles) should be X- % converted to lower-case, except the first letter or X- % first letter after a colon X- % (if false then they appear as in the database) X % MONTH_FULL: months are spelled out in full (if false, then X % they're abbreviated) X % JOUR_FULL: macro journal names are spelled out in full X % (if false then they are abbreviated, currently X % as they appear in ACM publications) X! #ifndef UNSRT X! # ifndef ALPHA X! # ifndef ABBRV X! # define PLAIN 1 X! # endif X! # endif X! #endif X! #ifdef PLAIN X! % plain style (sorted numbers) X! # define LAB_ALPH 0 X! # define SORTED 1 X! # define NAME_FULL 1 X! # define ATIT_LOWER 1 X! # define MONTH_FULL 1 X! # define JOUR_FULL 1 X #endif X #ifdef UNSRT X! % unsrt style (unsorted numbers) X # define LAB_ALPH 0 X # define SORTED 0 X # define NAME_FULL 1 X! # define ATIT_LOWER 1 X # define MONTH_FULL 1 X # define JOUR_FULL 1 X #endif X #ifdef ALPHA X! % alpha style (sorted short alphabetics) X # define LAB_ALPH 1 X # define SORTED 1 X! # define NAME_FULL 1 X # define ATIT_LOWER 1 X # define MONTH_FULL 1 X # define JOUR_FULL 1 X #endif X #ifdef ABBRV X! % abbrv style (sorted numbers, with abbreviations) X # define LAB_ALPH 0 X # define SORTED 1 X # define NAME_FULL 0 X # define ATIT_LOWER 1 X # define MONTH_FULL 0 X # define JOUR_FULL 0 X #endif X % X % Entry formatting: Similar to that recommended by Mary-Claire van Leunen X % in "A Handbook for Scholars". Book-like titles are italicized X--- 74,185 ---- X % NAME_FULL: the authors, editors, etc., get the full names as X % given in the bibliography file (if false, the first X % names become initials) X % MONTH_FULL: months are spelled out in full (if false, then X % they're abbreviated) X % JOUR_FULL: macro journal names are spelled out in full X % (if false then they are abbreviated, currently X % as they appear in ACM publications) X! % X! % this might be set on request: X! % ATIT_LOWER: titles of non-"books" (e.g., articles) should be X! % converted to lower-case, except the first letter or X! % first letter after a colon X! % (if false then they appear as in the database) X! % X! % PLAIN is default! X! % X! % X! % creation: X! % X! % /lib/cpp -P [ defines ] itibst.doc | X! % perl -n -e 's/^%$//; s/^%[^%].*//; print unless $_ eq "\n";' \ X! % >style.bst X! % X! #ifdef GERMAN X! %% german texts X! # define ATIT_LOWER 0 X #endif X #ifdef UNSRT X! %% unsrt style (unsorted numbers) X # define LAB_ALPH 0 X # define SORTED 0 X # define NAME_FULL 1 X! # ifndef ATIT_LOWER X! # define ATIT_LOWER 1 X! # endif X # define MONTH_FULL 1 X # define JOUR_FULL 1 X #endif X #ifdef ALPHA X! %% alpha style (sorted short alphabetics) X # define LAB_ALPH 1 X # define SORTED 1 X! # define NAME_FULL 0 X! #ifndef ATIT_LOWER X # define ATIT_LOWER 1 X+ #endif X # define MONTH_FULL 1 X # define JOUR_FULL 1 X #endif X #ifdef ABBRV X! %% abbrv style (sorted numbers, with abbreviations) X # define LAB_ALPH 0 X # define SORTED 1 X # define NAME_FULL 0 X+ #ifndef ATIT_LOWER X+ # define ATIT_LOWER 1 X+ #endif X+ # define MONTH_FULL 0 X+ # define JOUR_FULL 0 X+ #endif X+ #ifdef ALPH_ABBRV X+ %% alph-abbrv style (sorted short alphabetics, with abbreviations) X+ # define LAB_ALPH 1 X+ # define SORTED 1 X+ # define NAME_FULL 0 X+ #ifndef ATIT_LOWER X # define ATIT_LOWER 1 X+ #endif X # define MONTH_FULL 0 X # define JOUR_FULL 0 X #endif X+ #ifdef BIBLIST X+ %% biblist style (unsorted, for listings of bib files) X+ # define LAB_ALPH 0 X+ # define SORTED 0 X+ # define NAME_FULL 1 X+ #ifndef ATIT_LOWER X+ # define ATIT_LOWER 0 X+ #endif X+ # define MONTH_FULL 1 X+ # define JOUR_FULL 1 X+ # define REFERENCE X+ #endif X+ #ifndef SORTED /* use PLAIN */ X+ %% plain style (sorted numbers) X+ # define LAB_ALPH 0 X+ # define SORTED 1 X+ # define NAME_FULL 1 X+ # ifndef ATIT_LOWER X+ # define ATIT_LOWER 1 X+ # endif X+ # define MONTH_FULL 1 X+ # define JOUR_FULL 1 X+ #endif X+ #ifdef REFERENCE X+ # define ISBN 1 X+ # define ANNOTATE 1 X+ # define LIBRARY 1 X+ #endif X+ #ifndef ISBN X+ # define ISBN 0 X+ #endif X+ #ifndef ANNOTATE X+ # define ANNOTATE 0 X+ #endif X+ #ifndef LIBRARY X+ # define LIBRARY 0 X+ #endif X % X % Entry formatting: Similar to that recommended by Mary-Claire van Leunen X % in "A Handbook for Scholars". Book-like titles are italicized X*************** X*** 199,206 **** X % however, it's the address of the conference; for those two entry X % types, include the publisher's or organization's address, if X % necessary, in the publisher or organization field. X! % annote X % Long annotation---for annotated bibliographies (begins sentence). X author X % Name(s) of author(s), in BibTeX name format. X booktitle X--- 270,279 ---- X % however, it's the address of the conference; for those two entry X % types, include the publisher's or organization's address, if X % necessary, in the publisher or organization field. X! #if ANNOTATE X! annote X % Long annotation---for annotated bibliographies (begins sentence). X+ #endif X author X % Name(s) of author(s), in BibTeX name format. X booktitle X*************** X*** 218,228 **** X--- 291,311 ---- X % How something strange has been published (begins sentence). X institution X % Sponsoring institution of a technical report. X+ #if ISBN X+ isbn X+ % ISBN of book X+ issn X+ % ISSN of periodical X+ #endif X journal X % Journal name (macros are provided for many). X key X % Alphabetizing, labeling, and cross-referencing key X % (needed when an entry has no author or editor). X+ #if LIBRARY X+ library X+ % Library signature X+ #endif X month X % Month (macros are provided). X note X*************** X*** 380,385 **** X--- 463,491 ---- X % output.state := before.all X % END X % X+ #if ANNOTATE X+ % The output.annote function writes the annotation for the current X+ % entry. It must not use the concatenation operator since an X+ % annotation may be rather long and BibTeX has an arbitrary limit X+ % (1000) on the length of strings. X+ % X+ % In fact, this function is defined later, since it needs new.block X+ % which is not defined yet. X+ % X+ % output.annote == X+ % BEGIN X+ % if not empty$(annote) then X+ % new.block X+ % prepare for output of "\annote " X+ % newline$ X+ % write$("\annote ") X+ % write$(annote) X+ % newline$ X+ % push "\endannote" on stack % for fin.entry X+ % fi X+ % END X+ % X+ #endif X % The fin.entry function finishes off an entry by adding a period to the X % string remaining on the stack. If the state is still before.all X % then nothing was produced for this entry, so the result will look bad, X*************** X*** 503,508 **** X--- 609,629 ---- X if$ X } X X+ #if ANNOTATE X+ FUNCTION {output.annote} X+ { X+ annote empty$ X+ { } X+ { X+ new.block "\annote " output X+ newline$ write$ X+ annote write$ newline$ X+ "\endannote" X+ } X+ if$ X+ } X+ #endif X+ X % These three functions pop one or two (integer) arguments from the stack X % and push a single one, either 0 or 1. X % The 'skip$ in the `and' and `or' functions are used because X*************** X*** 591,597 **** X % emphasize(s) == X % BEGIN X % if empty$(s) then return "" X! % else return "{\em " * s * "}" X % X % The format.names function formats the argument (which should be in X % BibTeX name format) into "First Von Last, Junior", separated by commas X--- 712,718 ---- X % emphasize(s) == X % BEGIN X % if empty$(s) then return "" X! % else return "{\it " * s * "}" X % X % The format.names function formats the argument (which should be in X % BibTeX name format) into "First Von Last, Junior", separated by commas X*************** X*** 615,626 **** X--- 736,755 ---- X % t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") X % if nameptr > 1 then X % if namesleft > 1 then nameresult := nameresult * ", " * t X+ #ifndef GERMAN X % else if numnames > 2 X % then nameresult := nameresult * "," X % fi X % if t = "others" X+ #else /* GERMAN */ X+ % else if t = "others" X+ #endif /* GERMAN */ X % then nameresult := nameresult * " et~al." X+ #ifndef GERMAN X % else nameresult := nameresult * " and " * t X+ #else /* GERMAN */ X+ % else nameresult := nameresult * " und " * t X+ #endif /* GERMAN */ X % fi X % fi X % else nameresult := t X*************** X*** 672,678 **** X FUNCTION {emphasize} X { duplicate$ empty$ X { pop$ "" } X! { "{\em " swap$ * "}" * } X if$ X } X X--- 801,807 ---- X FUNCTION {emphasize} X { duplicate$ empty$ X { pop$ "" } X! { "{\it " swap$ * "}" * } X if$ X } X X*************** X*** 692,704 **** X--- 821,841 ---- X nameptr #1 > X { namesleft #1 > X { ", " * t * } X+ #ifndef GERMAN X { numnames #2 > X { "," * } X 'skip$ X if$ X t "others" = X+ #else /* GERMAN */ X+ { t "others" = X+ #endif /* GERMAN */ X { " et~al." * } X+ #ifndef GERMAN X { " and " * t * } X+ #else /* GERMAN */ X+ { " und " * t * } X+ #endif /* GERMAN */ X if$ X } X if$ X*************** X*** 730,735 **** X--- 867,898 ---- X if$ X } X X+ #if ISBN X+ FUNCTION {format.isbn} X+ { isbn empty$ X+ { "" } X+ { new.sentence "ISBN~" isbn * } X+ if$ X+ } X+ X+ FUNCTION {format.issn} X+ { issn empty$ X+ { "" } X+ { new.sentence "ISSN~" issn * } X+ if$ X+ } X+ #endif X+ X+ #if LIBRARY X+ FUNCTION {format.library} X+ { library empty$ X+ { "" } X+ { "\library{" library * "}" * } X+ if$ X+ } X+ #endif X+ X+ X % The format.title function is used for non-book-like titles. X % For most styles we convert to lowercase (except for the very first letter, X % and except for the first one after a colon (followed by whitespace)), X*************** X*** 992,999 **** X--- 1155,1167 ---- X { pages empty$ X { "" } X { pages multi.page.check X+ #ifndef GERMAN X { "pages" pages n.dashify tie.or.space.connect } X { "page" pages tie.or.space.connect } X+ #else /* GERMAN */ X+ { "Seiten" pages n.dashify tie.or.space.connect } X+ { "Seite" pages tie.or.space.connect } X+ #endif /* GERMAN */ X if$ X } X if$ X*************** X*** 1151,1157 **** X warning$ X "" X } X! { "In {\em " journal * "\/}" * } X if$ X } X { "In " key * } X--- 1319,1325 ---- X warning$ X "" X } X! { "In {\it " journal * "\/}" * } X if$ X } X { "In " key * } X*************** X*** 1172,1178 **** X--- 1340,1350 ---- X 'skip$ X { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = X { " et~al." * } X+ #ifndef GERMAN X { " and " * editor #2 "{vv~}{ll}" format.name$ * } X+ #else X+ { " und " * editor #2 "{vv~}{ll}" format.name$ * } X+ #endif X if$ X } X if$ X*************** X*** 1204,1210 **** X crossref * warning$ X "" * X } X! { "{\em " * series * "\/}" * } X if$ X } X { key * } X--- 1376,1382 ---- X crossref * warning$ X "" * X } X! { "{\it " * series * "\/}" * } X if$ X } X { key * } X*************** X*** 1231,1237 **** X crossref * warning$ X "" X } X! { "In {\em " booktitle * "\/}" * } X if$ X } X { "In " key * } X--- 1403,1409 ---- X crossref * warning$ X "" X } X! { "In {\it " booktitle * "\/}" * } X if$ X } X { "In " key * } X*************** X*** 1313,1318 **** X--- 1485,1494 ---- X X FUNCTION {article} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors "author" output.check X new.block X format.title "title" output.check X*************** X*** 1326,1338 **** X--- 1502,1524 ---- X format.pages output X } X if$ X+ #if ISBN X+ format.issn output X+ #endif X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X FUNCTION {book} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X author empty$ X { format.editors "author and editor" output.check } X { format.authors output.nonnull X*************** X*** 1358,1365 **** X--- 1544,1557 ---- X if$ X format.edition output X format.date "year" output.check X+ #if ISBN X+ format.isbn output X+ #endif X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1369,1374 **** X--- 1561,1570 ---- X X FUNCTION {booklet} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors output X new.block X format.title "title" output.check X*************** X*** 1378,1383 **** X--- 1574,1582 ---- X format.date output X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1391,1396 **** X--- 1590,1599 ---- X X FUNCTION {inbook} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X author empty$ X { format.editors "author and editor" output.check } X { format.authors output.nonnull X*************** X*** 1418,1425 **** X--- 1621,1634 ---- X if$ X format.edition output X format.date "year" output.check X+ #if ISBN X+ format.isbn output X+ #endif X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1432,1437 **** X--- 1641,1650 ---- X X FUNCTION {incollection} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors "author" output.check X new.block X format.title "title" output.check X*************** X*** 1451,1458 **** X--- 1664,1677 ---- X format.chapter.pages output X } X if$ X+ #if ISBN X+ format.isbn output X+ #endif X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1465,1470 **** X--- 1684,1693 ---- X X FUNCTION {inproceedings} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors "author" output.check X new.block X format.title "title" output.check X*************** X*** 1492,1499 **** X--- 1715,1729 ---- X format.pages output X } X if$ X+ #if ISBN X+ format.isbn output X+ format.issn output X+ #endif X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1507,1512 **** X--- 1737,1746 ---- X X FUNCTION {manual} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X author empty$ X { organization empty$ X 'skip$ X*************** X*** 1536,1541 **** X--- 1770,1778 ---- X format.date output X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1545,1550 **** X--- 1782,1791 ---- X X FUNCTION {mastersthesis} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors "author" output.check X new.block X format.title "title" output.check X*************** X*** 1555,1560 **** X--- 1796,1804 ---- X format.date "year" output.check X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1564,1569 **** X--- 1808,1817 ---- X X FUNCTION {misc} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors output X title howpublished new.block.checkb X format.title output X*************** X*** 1570,1577 **** X--- 1818,1831 ---- X howpublished new.block.checka X howpublished output X format.date output X+ #if ISBN X+ format.issn output X+ #endif X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X empty.misc.check X } X*************** X*** 1582,1587 **** X--- 1836,1845 ---- X X FUNCTION {phdthesis} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors "author" output.check X new.block X format.btitle "title" output.check X*************** X*** 1592,1597 **** X--- 1850,1858 ---- X format.date "year" output.check X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1605,1610 **** X--- 1866,1875 ---- X X FUNCTION {proceedings} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X editor empty$ X { organization output } X { format.editors output.nonnull } X*************** X*** 1633,1640 **** X--- 1898,1912 ---- X publisher output X } X if$ X+ #if ISBN X+ format.isbn output X+ format.issn output X+ #endif X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1644,1649 **** X--- 1916,1925 ---- X X FUNCTION {techreport} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors "author" output.check X new.block X format.title "title" output.check X*************** X*** 1654,1659 **** X--- 1930,1938 ---- X format.date "year" output.check X new.block X note output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1663,1668 **** X--- 1942,1951 ---- X X FUNCTION {unpublished} X { output.bibitem X+ #if LIBRARY X+ format.library output X+ new.sentence X+ #endif X format.authors "author" output.check X new.block X format.title "title" output.check X*************** X*** 1669,1674 **** X--- 1952,1960 ---- X new.block X note "note" output.check X format.date output X+ #if ANNOTATE X+ output.annote X+ #endif X fin.entry X } X X*************** X*** 1683,1739 **** X X #if MONTH_FULL X X- MACRO {jan} {"January"} X X! MACRO {feb} {"February"} X X MACRO {mar} {"March"} X- X MACRO {apr} {"April"} X- X MACRO {may} {"May"} X- X MACRO {jun} {"June"} X- X MACRO {jul} {"July"} X- X MACRO {aug} {"August"} X- X MACRO {sep} {"September"} X- X MACRO {oct} {"October"} X X MACRO {nov} {"November"} X X! MACRO {dec} {"December"} X X- #else !MONTH_FULL X X! MACRO {jan} {"Jan."} X X- MACRO {feb} {"Feb."} X X! MACRO {mar} {"Mar."} X X MACRO {apr} {"Apr."} X- X MACRO {may} {"May"} X- X MACRO {jun} {"June"} X- X MACRO {jul} {"July"} X- X MACRO {aug} {"Aug."} X- X MACRO {sep} {"Sept."} X- X MACRO {oct} {"Oct."} X X MACRO {nov} {"Nov."} X X! MACRO {dec} {"Dec."} X X! #endif MONTH_FULL X X % Journals are either written out in full or abbreviated; X % the abbreviations are like those found in ACM publications. X--- 1969,2045 ---- X X #if MONTH_FULL X X X! #ifndef GERMAN X X+ MACRO {jan} {"January"} X+ MACRO {feb} {"February"} X MACRO {mar} {"March"} X MACRO {apr} {"April"} X MACRO {may} {"May"} X MACRO {jun} {"June"} X MACRO {jul} {"July"} X MACRO {aug} {"August"} X MACRO {sep} {"September"} X MACRO {oct} {"October"} X+ MACRO {nov} {"November"} X+ MACRO {dec} {"December"} X X+ #else /* GERMAN */ X+ X+ MACRO {jan} {"Januar"} X+ MACRO {feb} {"Februar"} X+ MACRO {mar} {"M{\accent 127 a}rz"} X+ MACRO {apr} {"April"} X+ MACRO {may} {"Mai"} X+ MACRO {jun} {"Juni"} X+ MACRO {jul} {"Juli"} X+ MACRO {aug} {"August"} X+ MACRO {sep} {"September"} X+ MACRO {oct} {"Oktober"} X MACRO {nov} {"November"} X+ MACRO {dec} {"Dezember"} X X! #endif /* GERMAN */ X X X! #else /* !MONTH_FULL */ X X X! #ifndef GERMAN X X+ MACRO {jan} {"Jan."} X+ MACRO {feb} {"Feb."} X+ MACRO {mar} {"Mar."} X MACRO {apr} {"Apr."} X MACRO {may} {"May"} X MACRO {jun} {"June"} X MACRO {jul} {"July"} X MACRO {aug} {"Aug."} X MACRO {sep} {"Sept."} X MACRO {oct} {"Oct."} X+ MACRO {nov} {"Nov."} X+ MACRO {dec} {"Dec."} X+ X+ #else /* GERMAN */ X X+ MACRO {jan} {"Jan."} X+ MACRO {feb} {"Feb."} X+ MACRO {mar} {"M{\accent 127 a}rz"} X+ MACRO {apr} {"April"} X+ MACRO {may} {"Mai"} X+ MACRO {jun} {"Juni"} X+ MACRO {jul} {"Juli"} X+ MACRO {aug} {"Aug."} X+ MACRO {sep} {"Sept."} X+ MACRO {oct} {"Okt."} X MACRO {nov} {"Nov."} X+ MACRO {dec} {"Dez."} X X! #endif /* GERMAN */ X! X X! #endif /* MONTH_FULL */ X X % Journals are either written out in full or abbreviated; X % the abbreviations are like those found in ACM publications. X*************** X*** 1785,1791 **** X X MACRO {tcs} {"Theoretical Computer Science"} X X! #else !JOUR_FULL X X MACRO {acmcs} {"ACM Comput. Surv."} X X--- 2091,2097 ---- X X MACRO {tcs} {"Theoretical Computer Science"} X X! #else /* !JOUR_FULL */ X X MACRO {acmcs} {"ACM Comput. Surv."} X X*************** X*** 1828,1834 **** X X MACRO {tcs} {"Theoretical Comput. Sci."} X X! #endif JOUR_FULL X X % Now we read in the .BIB entries. X X--- 2134,2140 ---- X X MACRO {tcs} {"Theoretical Comput. Sci."} X X! #endif /* JOUR_FULL */ X X % Now we read in the .BIB entries. X END_OF_FILE if test 28321 -ne `wc -c <'itibst.diff'`; then echo shar: \"'itibst.diff'\" unpacked with wrong size! fi # end of 'itibst.diff' fi if test -f 'biblist.bst' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'biblist.bst'\" else echo shar: Extracting \"'biblist.bst'\" \(19478 characters\) sed "s/^X//" >'biblist.bst' <<'END_OF_FILE' X%% $Id: itibst.doc,v 1.3 1992/01/13 13:59:34 schrod Exp schrod $ X%%---------------------------------------------------------------------- X%% BibTeX `THD/ITI' family of bibliography styles X%% The file itibst.doc has the documentation for this style. X%% Please notify Joachim Schrod (schrod@iti.informatik.th-darmstadt.de) of X%% any bugs in these styles or in this documentation file. X%% X%% CAVEAT: This is experimental software in an alpha-test version. X%% The documentation is not complete, installation instructions X%% are missing (or perhaps not updated), etc. Please send X%% bug reports (and, of course, repairs) to me, but do not expect X%% that I will react very soon. I will collect the stuff and will X%% incorporate it at a later date. X%% X%% biblist style (unsorted, for listings of bib files) XENTRY X { address X annote X author X booktitle X chapter X edition X editor X howpublished X institution X isbn X issn X journal X key X library X month X note X number X organization X pages X publisher X school X series X title X type X volume X year X } X {} X { label } XINTEGERS { output.state before.all mid.sentence after.sentence after.block } XFUNCTION {init.state.consts} X{ #0 'before.all := X #1 'mid.sentence := X #2 'after.sentence := X #3 'after.block := X} XSTRINGS { s t } XFUNCTION {output.nonnull} X{ 's := X output.state mid.sentence = X { ", " * write$ } X { output.state after.block = X { add.period$ write$ X newline$ X "\newblock " write$ X } X { output.state before.all = X 'write$ X { add.period$ " " * write$ } X if$ X } X if$ X mid.sentence 'output.state := X } X if$ X s X} XFUNCTION {output} X{ duplicate$ empty$ X 'pop$ X 'output.nonnull X if$ X} XFUNCTION {output.check} X{ 't := X duplicate$ empty$ X { pop$ "empty " t * " in " * cite$ * warning$ } X 'output.nonnull X if$ X} XFUNCTION {output.bibitem} X{ newline$ X "\bibitem{" write$ X cite$ write$ X "}" write$ X newline$ X "" X before.all 'output.state := X} XFUNCTION {fin.entry} X{ add.period$ X write$ X newline$ X} XFUNCTION {new.block} X{ output.state before.all = X 'skip$ X { after.block 'output.state := } X if$ X} XFUNCTION {new.sentence} X{ output.state after.block = X 'skip$ X { output.state before.all = X 'skip$ X { after.sentence 'output.state := } X if$ X } X if$ X} XFUNCTION {output.annote} X{ X annote empty$ X { } X { X new.block "\annote " output X newline$ write$ X annote write$ newline$ X "\endannote" X } X if$ X} XFUNCTION {not} X{ { #0 } X { #1 } X if$ X} XFUNCTION {and} X{ 'skip$ X { pop$ #0 } X if$ X} XFUNCTION {or} X{ { pop$ #1 } X 'skip$ X if$ X} XFUNCTION {new.block.checka} X{ empty$ X 'skip$ X 'new.block X if$ X} XFUNCTION {new.block.checkb} X{ empty$ X swap$ empty$ X and X 'skip$ X 'new.block X if$ X} XFUNCTION {new.sentence.checka} X{ empty$ X 'skip$ X 'new.sentence X if$ X} XFUNCTION {new.sentence.checkb} X{ empty$ X swap$ empty$ X and X 'skip$ X 'new.sentence X if$ X} XFUNCTION {field.or.null} X{ duplicate$ empty$ X { pop$ "" } X 'skip$ X if$ X} XFUNCTION {emphasize} X{ duplicate$ empty$ X { pop$ "" } X { "{\it " swap$ * "}" * } X if$ X} XINTEGERS { nameptr namesleft numnames } XFUNCTION {format.names} X{ 's := X #1 'nameptr := X s num.names$ 'numnames := X numnames 'namesleft := X { namesleft #0 > } X { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := X nameptr #1 > X { namesleft #1 > X { ", " * t * } X { numnames #2 > X { "," * } X 'skip$ X if$ X t "others" = X { " et~al." * } X { " and " * t * } X if$ X } X if$ X } X 't X if$ X nameptr #1 + 'nameptr := X namesleft #1 - 'namesleft := X } X while$ X} XFUNCTION {format.authors} X{ author empty$ X { "" } X { author format.names } X if$ X} XFUNCTION {format.editors} X{ editor empty$ X { "" } X { editor format.names X editor num.names$ #1 > X { ", editors" * } X { ", editor" * } X if$ X } X if$ X} XFUNCTION {format.isbn} X{ isbn empty$ X { "" } X { new.sentence "ISBN~" isbn * } X if$ X} XFUNCTION {format.issn} X{ issn empty$ X { "" } X { new.sentence "ISSN~" issn * } X if$ X} XFUNCTION {format.library} X{ library empty$ X { "" } X { "\library{" library * "}" * } X if$ X} XFUNCTION {format.title} X{ title empty$ X { "" } X 'title X if$ X} XFUNCTION {n.dashify} X{ 't := X "" X { t empty$ not } X { t #1 #1 substring$ "-" = X { t #1 #2 substring$ "--" = not X { "--" * X t #2 global.max$ substring$ 't := X } X { { t #1 #1 substring$ "-" = } X { "-" * X t #2 global.max$ substring$ 't := X } X while$ X } X if$ X } X { t #1 #1 substring$ * X t #2 global.max$ substring$ 't := X } X if$ X } X while$ X} XFUNCTION {format.date} X{ year empty$ X { month empty$ X { "" } X { "there's a month but no year in " cite$ * warning$ X month X } X if$ X } X { month empty$ X 'year X { month " " * year * } X if$ X } X if$ X} XFUNCTION {format.btitle} X{ title emphasize X} XFUNCTION {tie.or.space.connect} X{ duplicate$ text.length$ #3 < X { "~" } X { " " } X if$ X swap$ * * X} XFUNCTION {either.or.check} X{ empty$ X 'pop$ X { "can't use both " swap$ * " fields in " * cite$ * warning$ } X if$ X} XFUNCTION {format.bvolume} X{ volume empty$ X { "" } X { "volume" volume tie.or.space.connect X series empty$ X 'skip$ X { " of " * series emphasize * } X if$ X "volume and number" number either.or.check X } X if$ X} XFUNCTION {format.number.series} X{ volume empty$ X { number empty$ X { series field.or.null } X { output.state mid.sentence = X { "number" } X { "Number" } X if$ X number tie.or.space.connect X series empty$ X { "there's a number but no series in " cite$ * warning$ } X { " in " * series * } X if$ X } X if$ X } X { "" } X if$ X} XFUNCTION {format.edition} X{ edition empty$ X { "" } X { output.state mid.sentence = X { edition "l" change.case$ " edition" * } X { edition "t" change.case$ " edition" * } X if$ X } X if$ X} XINTEGERS { multiresult } XFUNCTION {multi.page.check} X{ 't := X #0 'multiresult := X { multiresult not X t empty$ not X and X } X { t #1 #1 substring$ X duplicate$ "-" = X swap$ duplicate$ "," = X swap$ "+" = X or or X { #1 'multiresult := } X { t #2 global.max$ substring$ 't := } X if$ X } X while$ X multiresult X} XFUNCTION {format.pages} X{ pages empty$ X { "" } X { pages multi.page.check X { "pages" pages n.dashify tie.or.space.connect } X { "page" pages tie.or.space.connect } X if$ X } X if$ X} XFUNCTION {format.vol.num.pages} X{ volume field.or.null X number empty$ X 'skip$ X { "(" number * ")" * * X volume empty$ X { "there's a number but no volume in " cite$ * warning$ } X 'skip$ X if$ X } X if$ X pages empty$ X 'skip$ X { duplicate$ empty$ X { pop$ format.pages } X { ":" * pages n.dashify * } X if$ X } X if$ X} XFUNCTION {format.chapter.pages} X{ chapter empty$ X 'format.pages X { type empty$ X { "chapter" } X { type "l" change.case$ } X if$ X chapter tie.or.space.connect X pages empty$ X 'skip$ X { ", " * format.pages * } X if$ X } X if$ X} XFUNCTION {format.in.ed.booktitle} X{ booktitle empty$ X { "" } X { editor empty$ X { "In " booktitle emphasize * } X { "In " format.editors * ", " * booktitle emphasize * } X if$ X } X if$ X} XFUNCTION {empty.misc.check} X{ author empty$ title empty$ howpublished empty$ X month empty$ year empty$ note empty$ X and and and and and X { "all relevant fields are empty in " cite$ * warning$ } X 'skip$ X if$ X} XFUNCTION {format.thesis.type} X{ type empty$ X 'skip$ X { pop$ X type "t" change.case$ X } X if$ X} XFUNCTION {format.tr.number} X{ type empty$ X { "Technical Report" } X 'type X if$ X number empty$ X { "t" change.case$ } X { number tie.or.space.connect } X if$ X} XFUNCTION {format.article.crossref} X{ key empty$ X { journal empty$ X { "need key or journal for " cite$ * " to crossref " * crossref * X warning$ X "" X } X { "In {\it " journal * "\/}" * } X if$ X } X { "In " key * } X if$ X " \cite{" * crossref * "}" * X} XFUNCTION {format.crossref.editor} X{ editor #1 "{vv~}{ll}" format.name$ X editor num.names$ duplicate$ X #2 > X { pop$ " et~al." * } X { #2 < X 'skip$ X { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = X { " et~al." * } X { " and " * editor #2 "{vv~}{ll}" format.name$ * } X if$ X } X if$ X } X if$ X} XFUNCTION {format.book.crossref} X{ volume empty$ X { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ X "In " X } X { "Volume" volume tie.or.space.connect X " of " * X } X if$ X editor empty$ X editor field.or.null author field.or.null = X or X { key empty$ X { series empty$ X { "need editor, key, or series for " cite$ * " to crossref " * X crossref * warning$ X "" * X } X { "{\it " * series * "\/}" * } X if$ X } X { key * } X if$ X } X { format.crossref.editor * } X if$ X " \cite{" * crossref * "}" * X} XFUNCTION {format.incoll.inproc.crossref} X{ editor empty$ X editor field.or.null author field.or.null = X or X { key empty$ X { booktitle empty$ X { "need editor, key, or booktitle for " cite$ * " to crossref " * X crossref * warning$ X "" X } X { "In {\it " booktitle * "\/}" * } X if$ X } X { "In " key * } X if$ X } X { "In " format.crossref.editor * } X if$ X " \cite{" * crossref * "}" * X} XFUNCTION {article} X{ output.bibitem X format.library output X new.sentence X format.authors "author" output.check X new.block X format.title "title" output.check X new.block X crossref missing$ X { journal emphasize "journal" output.check X format.vol.num.pages output X format.date "year" output.check X } X { format.article.crossref output.nonnull X format.pages output X } X if$ X format.issn output X new.block X note output X output.annote X fin.entry X} XFUNCTION {book} X{ output.bibitem X format.library output X new.sentence X author empty$ X { format.editors "author and editor" output.check } X { format.authors output.nonnull X crossref missing$ X { "author and editor" editor either.or.check } X 'skip$ X if$ X } X if$ X new.block X format.btitle "title" output.check X crossref missing$ X { format.bvolume output X new.block X format.number.series output X new.sentence X publisher "publisher" output.check X address output X } X { new.block X format.book.crossref output.nonnull X } X if$ X format.edition output X format.date "year" output.check X format.isbn output X new.block X note output X output.annote X fin.entry X} XFUNCTION {booklet} X{ output.bibitem X format.library output X new.sentence X format.authors output X new.block X format.title "title" output.check X howpublished address new.block.checkb X howpublished output X address output X format.date output X new.block X note output X output.annote X fin.entry X} XFUNCTION {inbook} X{ output.bibitem X format.library output X new.sentence X author empty$ X { format.editors "author and editor" output.check } X { format.authors output.nonnull X crossref missing$ X { "author and editor" editor either.or.check } X 'skip$ X if$ X } X if$ X new.block X format.btitle "title" output.check X crossref missing$ X { format.bvolume output X format.chapter.pages "chapter and pages" output.check X new.block X format.number.series output X new.sentence X publisher "publisher" output.check X address output X } X { format.chapter.pages "chapter and pages" output.check X new.block X format.book.crossref output.nonnull X } X if$ X format.edition output X format.date "year" output.check X format.isbn output X new.block X note output X output.annote X fin.entry X} XFUNCTION {incollection} X{ output.bibitem X format.library output X new.sentence X format.authors "author" output.check X new.block X format.title "title" output.check X new.block X crossref missing$ X { format.in.ed.booktitle "booktitle" output.check X format.bvolume output X format.number.series output X format.chapter.pages output X new.sentence X publisher "publisher" output.check X address output X format.edition output X format.date "year" output.check X } X { format.incoll.inproc.crossref output.nonnull X format.chapter.pages output X } X if$ X format.isbn output X new.block X note output X output.annote X fin.entry X} XFUNCTION {inproceedings} X{ output.bibitem X format.library output X new.sentence X format.authors "author" output.check X new.block X format.title "title" output.check X new.block X crossref missing$ X { format.in.ed.booktitle "booktitle" output.check X format.bvolume output X format.number.series output X format.pages output X address empty$ X { organization publisher new.sentence.checkb X organization output X publisher output X format.date "year" output.check X } X { address output.nonnull X format.date "year" output.check X new.sentence X organization output X publisher output X } X if$ X } X { format.incoll.inproc.crossref output.nonnull X format.pages output X } X if$ X format.isbn output X format.issn output X new.block X note output X output.annote X fin.entry X} XFUNCTION {conference} { inproceedings } XFUNCTION {manual} X{ output.bibitem X format.library output X new.sentence X author empty$ X { organization empty$ X 'skip$ X { organization output.nonnull X address output X } X if$ X } X { format.authors output.nonnull } X if$ X new.block X format.btitle "title" output.check X author empty$ X { organization empty$ X { address new.block.checka X address output X } X 'skip$ X if$ X } X { organization address new.block.checkb X organization output X address output X } X if$ X format.edition output X format.date output X new.block X note output X output.annote X fin.entry X} XFUNCTION {mastersthesis} X{ output.bibitem X format.library output X new.sentence X format.authors "author" output.check X new.block X format.title "title" output.check X new.block X "Master's thesis" format.thesis.type output.nonnull X school "school" output.check X address output X format.date "year" output.check X new.block X note output X output.annote X fin.entry X} XFUNCTION {misc} X{ output.bibitem X format.library output X new.sentence X format.authors output X title howpublished new.block.checkb X format.title output X howpublished new.block.checka X howpublished output X format.date output X format.issn output X new.block X note output X output.annote X fin.entry X empty.misc.check X} XFUNCTION {phdthesis} X{ output.bibitem X format.library output X new.sentence X format.authors "author" output.check X new.block X format.btitle "title" output.check X new.block X "PhD thesis" format.thesis.type output.nonnull X school "school" output.check X address output X format.date "year" output.check X new.block X note output X output.annote X fin.entry X} XFUNCTION {proceedings} X{ output.bibitem X format.library output X new.sentence X editor empty$ X { organization output } X { format.editors output.nonnull } X if$ X new.block X format.btitle "title" output.check X format.bvolume output X format.number.series output X address empty$ X { editor empty$ X { publisher new.sentence.checka } X { organization publisher new.sentence.checkb X organization output X } X if$ X publisher output X format.date "year" output.check X } X { address output.nonnull X format.date "year" output.check X new.sentence X editor empty$ X 'skip$ X { organization output } X if$ X publisher output X } X if$ X format.isbn output X format.issn output X new.block X note output X output.annote X fin.entry X} XFUNCTION {techreport} X{ output.bibitem X format.library output X new.sentence X format.authors "author" output.check X new.block X format.title "title" output.check X new.block X format.tr.number output.nonnull X institution "institution" output.check X address output X format.date "year" output.check X new.block X note output X output.annote X fin.entry X} XFUNCTION {unpublished} X{ output.bibitem X format.library output X new.sentence X format.authors "author" output.check X new.block X format.title "title" output.check X new.block X note "note" output.check X format.date output X output.annote X fin.entry X} XFUNCTION {default.type} { misc } XMACRO {jan} {"January"} XMACRO {feb} {"February"} XMACRO {mar} {"March"} XMACRO {apr} {"April"} XMACRO {may} {"May"} XMACRO {jun} {"June"} XMACRO {jul} {"July"} XMACRO {aug} {"August"} XMACRO {sep} {"September"} XMACRO {oct} {"October"} XMACRO {nov} {"November"} XMACRO {dec} {"December"} XMACRO {acmcs} {"ACM Computing Surveys"} XMACRO {acta} {"Acta Informatica"} XMACRO {cacm} {"Communications of the ACM"} XMACRO {ibmjrd} {"IBM Journal of Research and Development"} XMACRO {ibmsj} {"IBM Systems Journal"} XMACRO {ieeese} {"IEEE Transactions on Software Engineering"} XMACRO {ieeetc} {"IEEE Transactions on Computers"} XMACRO {ieeetcad} X {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} XMACRO {ipl} {"Information Processing Letters"} XMACRO {jacm} {"Journal of the ACM"} XMACRO {jcss} {"Journal of Computer and System Sciences"} XMACRO {scp} {"Science of Computer Programming"} XMACRO {sicomp} {"SIAM Journal on Computing"} XMACRO {tocs} {"ACM Transactions on Computer Systems"} XMACRO {tods} {"ACM Transactions on Database Systems"} XMACRO {tog} {"ACM Transactions on Graphics"} XMACRO {toms} {"ACM Transactions on Mathematical Software"} XMACRO {toois} {"ACM Transactions on Office Information Systems"} XMACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} XMACRO {tcs} {"Theoretical Computer Science"} XREAD XSTRINGS { longest.label } XINTEGERS { number.label longest.label.width } XFUNCTION {initialize.longest.label} X{ "" 'longest.label := X #1 'number.label := X #0 'longest.label.width := X} XFUNCTION {longest.label.pass} X{ number.label int.to.str$ 'label := X number.label #1 + 'number.label := X label width$ longest.label.width > X { label 'longest.label := X label width$ 'longest.label.width := X } X 'skip$ X if$ X} XEXECUTE {initialize.longest.label} XITERATE {longest.label.pass} XFUNCTION {begin.bib} X{ preamble$ empty$ X 'skip$ X { preamble$ write$ newline$ } X if$ X "\begin{thebibliography}{" longest.label * "}" * write$ newline$ X} XEXECUTE {begin.bib} XEXECUTE {init.state.consts} XITERATE {call.type$} XFUNCTION {end.bib} X{ newline$ X "\end{thebibliography}" write$ newline$ X} XEXECUTE {end.bib} END_OF_FILE if test 19478 -ne `wc -c <'biblist.bst'`; then echo shar: \"'biblist.bst'\" unpacked with wrong size! fi # end of 'biblist.bst' fi echo shar: End of shell archive. exit 0