home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume37 / annote / part02 < prev    next >
Encoding:
Text File  |  1993-05-15  |  54.8 KB  |  2,469 lines

  1. Newsgroups: comp.sources.misc
  2. From: arrouye@cosmos.imag.fr (Yves Arrouye)
  3. Subject: v37i058:  annote - BibTeX styles supporting annotations, Part02/03
  4. Message-ID: <1993May16.011508.17826@sparky.imd.sterling.com>
  5. X-Md4-Signature: c69b2f53c7e81deaa8dc30eea385f0c1
  6. Date: Sun, 16 May 1993 01:15:08 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: arrouye@cosmos.imag.fr (Yves Arrouye)
  10. Posting-number: Volume 37, Issue 58
  11. Archive-name: annote/part02
  12. Environment: LaTex
  13.  
  14. #! /bin/sh
  15. # This is a shell archive.  Remove anything before this line, then feed it
  16. # into a shell via "sh file" or similar.  To overwrite existing files,
  17. # type "sh file -c".
  18. # Contents:  ANNOUNCE IDEAS Makefile abbrv.bst annote.sty annotebib.add
  19. #   sample.bib sample.tex unsrt.bst
  20. # Wrapped by kent@sparky on Sat May 15 20:06:13 1993
  21. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  22. echo If this archive is complete, you will see the following message:
  23. echo '          "shar: End of archive 2 (of 3)."'
  24. if test -f 'ANNOUNCE' -a "${1}" != "-c" ; then 
  25.   echo shar: Will not clobber existing file \"'ANNOUNCE'\"
  26. else
  27.   echo shar: Extracting \"'ANNOUNCE'\" \(1485 characters\)
  28.   sed "s/^X//" >'ANNOUNCE' <<'END_OF_FILE'
  29. XAnnouncing the `annote' package for BibTeX styles supporting annotations.
  30. X
  31. XThe package is intended to facilitate the use of annotated bibliographies
  32. Xby enabling one to modify ``normal'' BibTeX styles in order to support
  33. Xan `annote' field (like is available in Bibcard). The advantages of
  34. Xthis package over existing annotated bibliographies are twofold: users can
  35. Xeasily customize the annotation layout, and existing BibTeX styles can
  36. Xbe automatically modified in order to support the `annote' package.
  37. X
  38. XStyles for BibTeX may be developped using the conventions of this
  39. Xpackage, or existing style files may be converted to these
  40. Xconventions. Automatic conversion of the files is available through
  41. Xtwo interactive Emacs functions.
  42. X  
  43. XThe `annotated' BibTeX styles support listing the bibliographies in
  44. Xannotated or non-annotated forms without any further modifications;
  45. Xinstead, the user can include a style file defining his preferred
  46. Xlayout of annotations and use it on her bibliography. This layout is
  47. Xeasily modified by using a simple LaTeX \renewcommand.
  48. X
  49. XThis release contains the `annote' package and some example BibTeX
  50. Xstyles, including the ones bundled with the LaTeX distribution (i.e.
  51. X`plain.bst', `alpha.bst', `unsrt.bst' and `abbrv.bst'); these BibTeX
  52. Xstyles were all modified to support `annote', some by hand when
  53. Xannotebib.el wasn't wrote, the other with annotebib.el.
  54. X
  55. XSimple documentation is in the `annote.README' file.
  56. X
  57. XYves Arrouye <arrouye@imag.imag.fr>
  58. XMay, 1993
  59. END_OF_FILE
  60.   if test 1485 -ne `wc -c <'ANNOUNCE'`; then
  61.     echo shar: \"'ANNOUNCE'\" unpacked with wrong size!
  62.   fi
  63.   # end of 'ANNOUNCE'
  64. fi
  65. if test -f 'IDEAS' -a "${1}" != "-c" ; then 
  66.   echo shar: Will not clobber existing file \"'IDEAS'\"
  67. else
  68.   echo shar: Extracting \"'IDEAS'\" \(463 characters\)
  69.   sed "s/^X//" >'IDEAS' <<'END_OF_FILE'
  70. XThis file is intended to hold ideas for future enhancements of the
  71. X`annote' package. If you have such ideas, please complete this file
  72. Xand email it to the author, Yves Arrouye <arrouye@imag.imag.fr>
  73. X
  74. X1. Make an elaborated \cite command which takes an optional parameter
  75. X   saying if we really want the annotation. This may be used in a
  76. X   bibliography where related items (with similar annotations) are
  77. X   \cite'd, but we do want only one annotation to appear.
  78. X
  79. X
  80. END_OF_FILE
  81.   if test 463 -ne `wc -c <'IDEAS'`; then
  82.     echo shar: \"'IDEAS'\" unpacked with wrong size!
  83.   fi
  84.   # end of 'IDEAS'
  85. fi
  86. if test -f 'Makefile' -a "${1}" != "-c" ; then 
  87.   echo shar: Will not clobber existing file \"'Makefile'\"
  88. else
  89.   echo shar: Extracting \"'Makefile'\" \(1066 characters\)
  90.   sed "s/^X//" >'Makefile' <<'END_OF_FILE'
  91. XBST = *.bst
  92. XSTY = annote.sty
  93. X
  94. XBST2= abbrv.bst alpha.bst
  95. XBST3= plain.bst unsrt.bst
  96. XBST4= siam.bst fsiam.bst lsiam.bst
  97. X
  98. XOTH = ANNOUNCE README IDEAS annotebib.add Makefile
  99. XELP = annotebib.el
  100. X
  101. XALL = $(OTH) $(STY) $(ELP) $(BST)
  102. X
  103. XBSTDIR = /usr/local/lib/tex/inputs
  104. XSTYDIR = /usr/local/lib/tex/inputs
  105. XOTHDIR = $(STYDIR)/documents
  106. XELPDIR = /usr/local/src/Gnu/Emacs18/local-lisp
  107. X
  108. Xshar: manifest shar1 shar2 shar3 shar4
  109. Xmanifest:
  110. X    @echo creating MANIFEST
  111. X    @echo 'Contents of the 4 archives of the `annote'"'"' package' \
  112. X          >MANIFEST
  113. X    @echo >>MANIFEST
  114. X    @echo "Archive 1: " $(OTH) $(ELP) $(STY) >>MANIFEST
  115. X    @echo "Archive 2: " $(BST2) >>MANIFEST
  116. X    @echo "Archive 3: " $(BST3) >>MANIFEST
  117. X    @echo "Archive 4: " $(BST4) >>MANIFEST
  118. X    @echo >>MANIFEST
  119. X
  120. Xshar1:
  121. X    shar $(OTH) $(ELP) $(STY) >annote.shar.part1
  122. Xshar2:
  123. X    shar $(BST2) >annote.shar.part2
  124. Xshar3:
  125. X    shar $(BST3) >annote.shar.part3
  126. Xshar4:
  127. X    shar $(BST4) >annote.shar.part4
  128. X
  129. Xinstall:
  130. X    install -c -m 664 $(BST) $(BSTDIR)
  131. X    install -c -m 664 $(STY) $(BSTDIR)
  132. X    install -c -m 664 $(ELP) $(ELPDIR)
  133. X    install -c -m 664 $(OTH) $(OTHDIR)
  134. X
  135. END_OF_FILE
  136.   if test 1066 -ne `wc -c <'Makefile'`; then
  137.     echo shar: \"'Makefile'\" unpacked with wrong size!
  138.   fi
  139.   # end of 'Makefile'
  140. fi
  141. if test -f 'abbrv.bst' -a "${1}" != "-c" ; then 
  142.   echo shar: Will not clobber existing file \"'abbrv.bst'\"
  143. else
  144.   echo shar: Extracting \"'abbrv.bst'\" \(20820 characters\)
  145.   sed "s/^X//" >'abbrv.bst' <<'END_OF_FILE'
  146. X% Style file modified on Wed May 12 19:27:11 1993
  147. X%                     by Yves Arrouye <arrouye@mistral>
  148. X
  149. X% This bibliography style was made annote-compatible by annotebib.el v1.0
  150. X% It can be used for both annotated and non-annotated bibliographies listing
  151. X% (annote package by Yves Arrouye <arrouye@imag.imag.fr>)
  152. X
  153. X% BibTeX standard bibliography style `abbrv'
  154. X        % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
  155. X        % Copyright (C) 1985, all rights reserved.
  156. X        % Copying of this file is authorized only if either
  157. X        % (1) you make absolutely no changes to your copy, including name, or
  158. X        % (2) if you do make changes, you name it something other than
  159. X        % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  160. X        % This restriction helps ensure that all standard styles are identical.
  161. X        % The file btxbst.doc has the documentation for this style.
  162. X
  163. XENTRY
  164. X  { annote
  165. X    address
  166. X    author
  167. X    booktitle
  168. X    chapter
  169. X    edition
  170. X    editor
  171. X    howpublished
  172. X    institution
  173. X    journal
  174. X    key
  175. X    month
  176. X    note
  177. X    number
  178. X    organization
  179. X    pages
  180. X    publisher
  181. X    school
  182. X    series
  183. X    title
  184. X    type
  185. X    volume
  186. X    year
  187. X  }
  188. X  {}
  189. X  { label }
  190. X
  191. XINTEGERS { output.state before.all mid.sentence after.sentence after.block }
  192. X
  193. XFUNCTION {init.state.consts}
  194. X{ #0 'before.all :=
  195. X  #1 'mid.sentence :=
  196. X  #2 'after.sentence :=
  197. X  #3 'after.block :=
  198. X}
  199. X
  200. XSTRINGS { s t }
  201. X
  202. XFUNCTION {output.nonnull}
  203. X{ 's :=
  204. X  output.state mid.sentence =
  205. X    { ", " * write$ }
  206. X    { output.state after.block =
  207. X        { add.period$ write$
  208. X          newline$
  209. X          "\newblock " write$
  210. X        }
  211. X        { output.state before.all =
  212. X            'write$
  213. X            { add.period$ " " * write$ }
  214. X          if$
  215. X        }
  216. X      if$
  217. X      mid.sentence 'output.state :=
  218. X    }
  219. X  if$
  220. X  s
  221. X}
  222. X
  223. XFUNCTION {output}
  224. X{ duplicate$ empty$
  225. X    'pop$
  226. X    'output.nonnull
  227. X  if$
  228. X}
  229. X
  230. XFUNCTION {output.check}
  231. X{ 't :=
  232. X  duplicate$ empty$
  233. X    { pop$ "empty " t * " in " * cite$ * warning$ }
  234. X    'output.nonnull
  235. X  if$
  236. X}
  237. X
  238. XFUNCTION {output.bibitem}
  239. X{ newline$
  240. X  "\bibitem{" write$
  241. X  cite$ write$
  242. X  "}" write$
  243. X  newline$
  244. X  ""
  245. X  before.all 'output.state :=
  246. X}
  247. X
  248. XFUNCTION {format.annote}
  249. X{ annote empty$
  250. X        { "" }
  251. X        { "\ifx\annote\undefined\else\begin{annote} "
  252. X          annote
  253. X          * " \end{annote}\fi " *
  254. X        }
  255. X      if$
  256. X}
  257. X
  258. XFUNCTION {fin.entry}
  259. X{ add.period$
  260. X  write$
  261. X  newline$
  262. X  format.annote write$
  263. X}
  264. X
  265. XFUNCTION {new.block}
  266. X{ output.state before.all =
  267. X    'skip$
  268. X    { after.block 'output.state := }
  269. X  if$
  270. X}
  271. X
  272. XFUNCTION {new.sentence}
  273. X{ output.state after.block =
  274. X    'skip$
  275. X    { output.state before.all =
  276. X        'skip$
  277. X        { after.sentence 'output.state := }
  278. X      if$
  279. X    }
  280. X  if$
  281. X}
  282. X
  283. XFUNCTION {not}
  284. X{   { #0 }
  285. X    { #1 }
  286. X  if$
  287. X}
  288. X
  289. XFUNCTION {and}
  290. X{   'skip$
  291. X    { pop$ #0 }
  292. X  if$
  293. X}
  294. X
  295. XFUNCTION {or}
  296. X{   { pop$ #1 }
  297. X    'skip$
  298. X  if$
  299. X}
  300. X
  301. XFUNCTION {new.block.checka}
  302. X{ empty$
  303. X    'skip$
  304. X    'new.block
  305. X  if$
  306. X}
  307. X
  308. XFUNCTION {new.block.checkb}
  309. X{ empty$
  310. X  swap$ empty$
  311. X  and
  312. X    'skip$
  313. X    'new.block
  314. X  if$
  315. X}
  316. X
  317. XFUNCTION {new.sentence.checka}
  318. X{ empty$
  319. X    'skip$
  320. X    'new.sentence
  321. X  if$
  322. X}
  323. X
  324. XFUNCTION {new.sentence.checkb}
  325. X{ empty$
  326. X  swap$ empty$
  327. X  and
  328. X    'skip$
  329. X    'new.sentence
  330. X  if$
  331. X}
  332. X
  333. XFUNCTION {field.or.null}
  334. X{ duplicate$ empty$
  335. X    { pop$ "" }
  336. X    'skip$
  337. X  if$
  338. X}
  339. X
  340. XFUNCTION {emphasize}
  341. X{ duplicate$ empty$
  342. X    { pop$ "" }
  343. X    { "{\em " swap$ * "}" * }
  344. X  if$
  345. X}
  346. X
  347. XINTEGERS { nameptr namesleft numnames }
  348. X
  349. XFUNCTION {format.names}
  350. X{ 's :=
  351. X  #1 'nameptr :=
  352. X  s num.names$ 'numnames :=
  353. X  numnames 'namesleft :=
  354. X    { namesleft #0 > }
  355. X    { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
  356. X      nameptr #1 >
  357. X        { namesleft #1 >
  358. X            { ", " * t * }
  359. X            { numnames #2 >
  360. X                { "," * }
  361. X                'skip$
  362. X              if$
  363. X              t "others" =
  364. X                { " et~al." * }
  365. X                { " and " * t * }
  366. X              if$
  367. X            }
  368. X          if$
  369. X        }
  370. X        't
  371. X      if$
  372. X      nameptr #1 + 'nameptr :=
  373. X      namesleft #1 - 'namesleft :=
  374. X    }
  375. X  while$
  376. X}
  377. X
  378. XFUNCTION {format.authors}
  379. X{ author empty$
  380. X    { "" }
  381. X    { author format.names }
  382. X  if$
  383. X}
  384. X
  385. XFUNCTION {format.editors}
  386. X{ editor empty$
  387. X    { "" }
  388. X    { editor format.names
  389. X      editor num.names$ #1 >
  390. X        { ", editors" * }
  391. X        { ", editor" * }
  392. X      if$
  393. X    }
  394. X  if$
  395. X}
  396. X
  397. XFUNCTION {format.title}
  398. X{ title empty$
  399. X    { "" }
  400. X    { title "t" change.case$ }
  401. X  if$
  402. X}
  403. X
  404. XFUNCTION {n.dashify}
  405. X{ 't :=
  406. X  ""
  407. X    { t empty$ not }
  408. X    { t #1 #1 substring$ "-" =
  409. X        { t #1 #2 substring$ "--" = not
  410. X            { "--" *
  411. X              t #2 global.max$ substring$ 't :=
  412. X            }
  413. X            {   { t #1 #1 substring$ "-" = }
  414. X                { "-" *
  415. X                  t #2 global.max$ substring$ 't :=
  416. X                }
  417. X              while$
  418. X            }
  419. X          if$
  420. X        }
  421. X        { t #1 #1 substring$ *
  422. X          t #2 global.max$ substring$ 't :=
  423. X        }
  424. X      if$
  425. X    }
  426. X  while$
  427. X}
  428. X
  429. XFUNCTION {format.date}
  430. X{ year empty$
  431. X    { month empty$
  432. X        { "" }
  433. X        { "there's a month but no year in " cite$ * warning$
  434. X          month
  435. X        }
  436. X      if$
  437. X    }
  438. X    { month empty$
  439. X        'year
  440. X        { month " " * year * }
  441. X      if$
  442. X    }
  443. X  if$
  444. X}
  445. X
  446. XFUNCTION {format.btitle}
  447. X{ title emphasize
  448. X}
  449. X
  450. XFUNCTION {tie.or.space.connect}
  451. X{ duplicate$ text.length$ #3 <
  452. X    { "~" }
  453. X    { " " }
  454. X  if$
  455. X  swap$ * *
  456. X}
  457. X
  458. XFUNCTION {either.or.check}
  459. X{ empty$
  460. X    'pop$
  461. X    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  462. X  if$
  463. X}
  464. X
  465. XFUNCTION {format.bvolume}
  466. X{ volume empty$
  467. X    { "" }
  468. X    { "volume" volume tie.or.space.connect
  469. X      series empty$
  470. X        'skip$
  471. X        { " of " * series emphasize * }
  472. X      if$
  473. X      "volume and number" number either.or.check
  474. X    }
  475. X  if$
  476. X}
  477. X
  478. XFUNCTION {format.number.series}
  479. X{ volume empty$
  480. X    { number empty$
  481. X        { series field.or.null }
  482. X        { output.state mid.sentence =
  483. X            { "number" }
  484. X            { "Number" }
  485. X          if$
  486. X          number tie.or.space.connect
  487. X          series empty$
  488. X            { "there's a number but no series in " cite$ * warning$ }
  489. X            { " in " * series * }
  490. X          if$
  491. X        }
  492. X      if$
  493. X    }
  494. X    { "" }
  495. X  if$
  496. X}
  497. X
  498. XFUNCTION {format.edition}
  499. X{ edition empty$
  500. X    { "" }
  501. X    { output.state mid.sentence =
  502. X        { edition "l" change.case$ " edition" * }
  503. X        { edition "t" change.case$ " edition" * }
  504. X      if$
  505. X    }
  506. X  if$
  507. X}
  508. X
  509. XINTEGERS { multiresult }
  510. X
  511. XFUNCTION {multi.page.check}
  512. X{ 't :=
  513. X  #0 'multiresult :=
  514. X    { multiresult not
  515. X      t empty$ not
  516. X      and
  517. X    }
  518. X    { t #1 #1 substring$
  519. X      duplicate$ "-" =
  520. X      swap$ duplicate$ "," =
  521. X      swap$ "+" =
  522. X      or or
  523. X        { #1 'multiresult := }
  524. X        { t #2 global.max$ substring$ 't := }
  525. X      if$
  526. X    }
  527. X  while$
  528. X  multiresult
  529. X}
  530. X
  531. XFUNCTION {format.pages}
  532. X{ pages empty$
  533. X    { "" }
  534. X    { pages multi.page.check
  535. X        { "pages" pages n.dashify tie.or.space.connect }
  536. X        { "page" pages tie.or.space.connect }
  537. X      if$
  538. X    }
  539. X  if$
  540. X}
  541. X
  542. XFUNCTION {format.vol.num.pages}
  543. X{ volume field.or.null
  544. X  number empty$
  545. X    'skip$
  546. X    { "(" number * ")" * *
  547. X      volume empty$
  548. X        { "there's a number but no volume in " cite$ * warning$ }
  549. X        'skip$
  550. X      if$
  551. X    }
  552. X  if$
  553. X  pages empty$
  554. X    'skip$
  555. X    { duplicate$ empty$
  556. X        { pop$ format.pages }
  557. X        { ":" * pages n.dashify * }
  558. X      if$
  559. X    }
  560. X  if$
  561. X}
  562. X
  563. XFUNCTION {format.chapter.pages}
  564. X{ chapter empty$
  565. X    'format.pages
  566. X    { type empty$
  567. X        { "chapter" }
  568. X        { type "l" change.case$ }
  569. X      if$
  570. X      chapter tie.or.space.connect
  571. X      pages empty$
  572. X        'skip$
  573. X        { ", " * format.pages * }
  574. X      if$
  575. X    }
  576. X  if$
  577. X}
  578. X
  579. XFUNCTION {format.in.ed.booktitle}
  580. X{ booktitle empty$
  581. X    { "" }
  582. X    { editor empty$
  583. X        { "In " booktitle emphasize * }
  584. X        { "In " format.editors * ", " * booktitle emphasize * }
  585. X      if$
  586. X    }
  587. X  if$
  588. X}
  589. X
  590. XFUNCTION {empty.misc.check}
  591. X{ author empty$ title empty$ howpublished empty$
  592. X  month empty$ year empty$ note empty$
  593. X  and and and and and
  594. X  key empty$ not and
  595. X    { "all relevant fields are empty in " cite$ * warning$ }
  596. X    'skip$
  597. X  if$
  598. X}
  599. X
  600. XFUNCTION {format.thesis.type}
  601. X{ type empty$
  602. X    'skip$
  603. X    { pop$
  604. X      type "t" change.case$
  605. X    }
  606. X  if$
  607. X}
  608. X
  609. XFUNCTION {format.tr.number}
  610. X{ type empty$
  611. X    { "Technical Report" }
  612. X    'type
  613. X  if$
  614. X  number empty$
  615. X    { "t" change.case$ }
  616. X    { number tie.or.space.connect }
  617. X  if$
  618. X}
  619. X
  620. XFUNCTION {format.article.crossref}
  621. X{ key empty$
  622. X    { journal empty$
  623. X        { "need key or journal for " cite$ * " to crossref " * crossref *
  624. X          warning$
  625. X          ""
  626. X        }
  627. X        { "In {\em " journal * "\/}" * }
  628. X      if$
  629. X    }
  630. X    { "In " key * }
  631. X  if$
  632. X  " \cite{" * crossref * "}" *
  633. X}
  634. X
  635. XFUNCTION {format.crossref.editor}
  636. X{ editor #1 "{vv~}{ll}" format.name$
  637. X  editor num.names$ duplicate$
  638. X  #2 >
  639. X    { pop$ " et~al." * }
  640. X    { #2 <
  641. X        'skip$
  642. X        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  643. X            { " et~al." * }
  644. X            { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  645. X          if$
  646. X        }
  647. X      if$
  648. X    }
  649. X  if$
  650. X}
  651. X
  652. XFUNCTION {format.book.crossref}
  653. X{ volume empty$
  654. X    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  655. X      "In "
  656. X    }
  657. X    { "Volume" volume tie.or.space.connect
  658. X      " of " *
  659. X    }
  660. X  if$
  661. X  editor empty$
  662. X  editor field.or.null author field.or.null =
  663. X  or
  664. X    { key empty$
  665. X        { series empty$
  666. X            { "need editor, key, or series for " cite$ * " to crossref " *
  667. X              crossref * warning$
  668. X              "" *
  669. X            }
  670. X            { "{\em " * series * "\/}" * }
  671. X          if$
  672. X        }
  673. X        { key * }
  674. X      if$
  675. X    }
  676. X    { format.crossref.editor * }
  677. X  if$
  678. X  " \cite{" * crossref * "}" *
  679. X}
  680. X
  681. XFUNCTION {format.incoll.inproc.crossref}
  682. X{ editor empty$
  683. X  editor field.or.null author field.or.null =
  684. X  or
  685. X    { key empty$
  686. X        { booktitle empty$
  687. X            { "need editor, key, or booktitle for " cite$ * " to crossref " *
  688. X              crossref * warning$
  689. X              ""
  690. X            }
  691. X            { "In {\em " booktitle * "\/}" * }
  692. X          if$
  693. X        }
  694. X        { "In " key * }
  695. X      if$
  696. X    }
  697. X    { "In " format.crossref.editor * }
  698. X  if$
  699. X  " \cite{" * crossref * "}" *
  700. X}
  701. X
  702. XFUNCTION {article}
  703. X{ output.bibitem
  704. X  format.authors "author" output.check
  705. X  new.block
  706. X  format.title "title" output.check
  707. X  new.block
  708. X  crossref missing$
  709. X    { journal emphasize "journal" output.check
  710. X      format.vol.num.pages output
  711. X      format.date "year" output.check
  712. X    }
  713. X    { format.article.crossref output.nonnull
  714. X      format.pages output
  715. X    }
  716. X  if$
  717. X  new.block
  718. X  note output
  719. X  fin.entry
  720. X}
  721. X
  722. XFUNCTION {book}
  723. X{ output.bibitem
  724. X  author empty$
  725. X    { format.editors "author and editor" output.check }
  726. X    { format.authors output.nonnull
  727. X      crossref missing$
  728. X        { "author and editor" editor either.or.check }
  729. X        'skip$
  730. X      if$
  731. X    }
  732. X  if$
  733. X  new.block
  734. X  format.btitle "title" output.check
  735. X  crossref missing$
  736. X    { format.bvolume output
  737. X      new.block
  738. X      format.number.series output
  739. X      new.sentence
  740. X      publisher "publisher" output.check
  741. X      address output
  742. X    }
  743. X    { new.block
  744. X      format.book.crossref output.nonnull
  745. X    }
  746. X  if$
  747. X  format.edition output
  748. X  format.date "year" output.check
  749. X  new.block
  750. X  note output
  751. X  fin.entry
  752. X}
  753. X
  754. XFUNCTION {booklet}
  755. X{ output.bibitem
  756. X  format.authors output
  757. X  new.block
  758. X  format.title "title" output.check
  759. X  howpublished address new.block.checkb
  760. X  howpublished output
  761. X  address output
  762. X  format.date output
  763. X  new.block
  764. X  note output
  765. X  fin.entry
  766. X}
  767. X
  768. XFUNCTION {inbook}
  769. X{ output.bibitem
  770. X  author empty$
  771. X    { format.editors "author and editor" output.check }
  772. X    { format.authors output.nonnull
  773. X      crossref missing$
  774. X        { "author and editor" editor either.or.check }
  775. X        'skip$
  776. X      if$
  777. X    }
  778. X  if$
  779. X  new.block
  780. X  format.btitle "title" output.check
  781. X  crossref missing$
  782. X    { format.bvolume output
  783. X      format.chapter.pages "chapter and pages" output.check
  784. X      new.block
  785. X      format.number.series output
  786. X      new.sentence
  787. X      publisher "publisher" output.check
  788. X      address output
  789. X    }
  790. X    { format.chapter.pages "chapter and pages" output.check
  791. X      new.block
  792. X      format.book.crossref output.nonnull
  793. X    }
  794. X  if$
  795. X  format.edition output
  796. X  format.date "year" output.check
  797. X  new.block
  798. X  note output
  799. X  fin.entry
  800. X}
  801. X
  802. XFUNCTION {incollection}
  803. X{ output.bibitem
  804. X  format.authors "author" output.check
  805. X  new.block
  806. X  format.title "title" output.check
  807. X  new.block
  808. X  crossref missing$
  809. X    { format.in.ed.booktitle "booktitle" output.check
  810. X      format.bvolume output
  811. X      format.number.series output
  812. X      format.chapter.pages output
  813. X      new.sentence
  814. X      publisher "publisher" output.check
  815. X      address output
  816. X      format.edition output
  817. X      format.date "year" output.check
  818. X    }
  819. X    { format.incoll.inproc.crossref output.nonnull
  820. X      format.chapter.pages output
  821. X    }
  822. X  if$
  823. X  new.block
  824. X  note output
  825. X  fin.entry
  826. X}
  827. X
  828. XFUNCTION {inproceedings}
  829. X{ output.bibitem
  830. X  format.authors "author" output.check
  831. X  new.block
  832. X  format.title "title" output.check
  833. X  new.block
  834. X  crossref missing$
  835. X    { format.in.ed.booktitle "booktitle" output.check
  836. X      format.bvolume output
  837. X      format.number.series output
  838. X      format.pages output
  839. X      address empty$
  840. X        { organization publisher new.sentence.checkb
  841. X          organization output
  842. X          publisher output
  843. X          format.date "year" output.check
  844. X        }
  845. X        { address output.nonnull
  846. X          format.date "year" output.check
  847. X          new.sentence
  848. X          organization output
  849. X          publisher output
  850. X        }
  851. X      if$
  852. X    }
  853. X    { format.incoll.inproc.crossref output.nonnull
  854. X      format.pages output
  855. X    }
  856. X  if$
  857. X  new.block
  858. X  note output
  859. X  fin.entry
  860. X}
  861. X
  862. XFUNCTION {conference} { inproceedings }
  863. X
  864. XFUNCTION {manual}
  865. X{ output.bibitem
  866. X  author empty$
  867. X    { organization empty$
  868. X        'skip$
  869. X        { organization output.nonnull
  870. X          address output
  871. X        }
  872. X      if$
  873. X    }
  874. X    { format.authors output.nonnull }
  875. X  if$
  876. X  new.block
  877. X  format.btitle "title" output.check
  878. X  author empty$
  879. X    { organization empty$
  880. X        { address new.block.checka
  881. X          address output
  882. X        }
  883. X        'skip$
  884. X      if$
  885. X    }
  886. X    { organization address new.block.checkb
  887. X      organization output
  888. X      address output
  889. X    }
  890. X  if$
  891. X  format.edition output
  892. X  format.date output
  893. X  new.block
  894. X  note output
  895. X  fin.entry
  896. X}
  897. X
  898. XFUNCTION {mastersthesis}
  899. X{ output.bibitem
  900. X  format.authors "author" output.check
  901. X  new.block
  902. X  format.title "title" output.check
  903. X  new.block
  904. X  "Master's thesis" format.thesis.type output.nonnull
  905. X  school "school" output.check
  906. X  address output
  907. X  format.date "year" output.check
  908. X  new.block
  909. X  note output
  910. X  fin.entry
  911. X}
  912. X
  913. XFUNCTION {misc}
  914. X{ output.bibitem
  915. X  format.authors output
  916. X  title howpublished new.block.checkb
  917. X  format.title output
  918. X  howpublished new.block.checka
  919. X  howpublished output
  920. X  format.date output
  921. X  new.block
  922. X  note output
  923. X  fin.entry
  924. X  empty.misc.check
  925. X}
  926. X
  927. XFUNCTION {phdthesis}
  928. X{ output.bibitem
  929. X  format.authors "author" output.check
  930. X  new.block
  931. X  format.btitle "title" output.check
  932. X  new.block
  933. X  "PhD thesis" format.thesis.type output.nonnull
  934. X  school "school" output.check
  935. X  address output
  936. X  format.date "year" output.check
  937. X  new.block
  938. X  note output
  939. X  fin.entry
  940. X}
  941. X
  942. XFUNCTION {proceedings}
  943. X{ output.bibitem
  944. X  editor empty$
  945. X    { organization output }
  946. X    { format.editors output.nonnull }
  947. X  if$
  948. X  new.block
  949. X  format.btitle "title" output.check
  950. X  format.bvolume output
  951. X  format.number.series output
  952. X  address empty$
  953. X    { editor empty$
  954. X        { publisher new.sentence.checka }
  955. X        { organization publisher new.sentence.checkb
  956. X          organization output
  957. X        }
  958. X      if$
  959. X      publisher output
  960. X      format.date "year" output.check
  961. X    }
  962. X    { address output.nonnull
  963. X      format.date "year" output.check
  964. X      new.sentence
  965. X      editor empty$
  966. X        'skip$
  967. X        { organization output }
  968. X      if$
  969. X      publisher output
  970. X    }
  971. X  if$
  972. X  new.block
  973. X  note output
  974. X  fin.entry
  975. X}
  976. X
  977. XFUNCTION {techreport}
  978. X{ output.bibitem
  979. X  format.authors "author" output.check
  980. X  new.block
  981. X  format.title "title" output.check
  982. X  new.block
  983. X  format.tr.number output.nonnull
  984. X  institution "institution" output.check
  985. X  address output
  986. X  format.date "year" output.check
  987. X  new.block
  988. X  note output
  989. X  fin.entry
  990. X}
  991. X
  992. XFUNCTION {unpublished}
  993. X{ output.bibitem
  994. X  format.authors "author" output.check
  995. X  new.block
  996. X  format.title "title" output.check
  997. X  new.block
  998. X  note "note" output.check
  999. X  format.date output
  1000. X  fin.entry
  1001. X}
  1002. X
  1003. XFUNCTION {default.type} { misc }
  1004. X
  1005. XMACRO {jan} {"Jan."}
  1006. X
  1007. XMACRO {feb} {"Feb."}
  1008. X
  1009. XMACRO {mar} {"Mar."}
  1010. X
  1011. XMACRO {apr} {"Apr."}
  1012. X
  1013. XMACRO {may} {"May"}
  1014. X
  1015. XMACRO {jun} {"June"}
  1016. X
  1017. XMACRO {jul} {"July"}
  1018. X
  1019. XMACRO {aug} {"Aug."}
  1020. X
  1021. XMACRO {sep} {"Sept."}
  1022. X
  1023. XMACRO {oct} {"Oct."}
  1024. X
  1025. XMACRO {nov} {"Nov."}
  1026. X
  1027. XMACRO {dec} {"Dec."}
  1028. X
  1029. XMACRO {acmcs} {"ACM Comput. Surv."}
  1030. X
  1031. XMACRO {acta} {"Acta Inf."}
  1032. X
  1033. XMACRO {cacm} {"Commun. ACM"}
  1034. X
  1035. XMACRO {ibmjrd} {"IBM J. Res. Dev."}
  1036. X
  1037. XMACRO {ibmsj} {"IBM Syst.~J."}
  1038. X
  1039. XMACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  1040. X
  1041. XMACRO {ieeetc} {"IEEE Trans. Comput."}
  1042. X
  1043. XMACRO {ieeetcad}
  1044. X {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  1045. X
  1046. XMACRO {ipl} {"Inf. Process. Lett."}
  1047. X
  1048. XMACRO {jacm} {"J.~ACM"}
  1049. X
  1050. XMACRO {jcss} {"J.~Comput. Syst. Sci."}
  1051. X
  1052. XMACRO {scp} {"Sci. Comput. Programming"}
  1053. X
  1054. XMACRO {sicomp} {"SIAM J. Comput."}
  1055. X
  1056. XMACRO {tocs} {"ACM Trans. Comput. Syst."}
  1057. X
  1058. XMACRO {tods} {"ACM Trans. Database Syst."}
  1059. X
  1060. XMACRO {tog} {"ACM Trans. Gr."}
  1061. X
  1062. XMACRO {toms} {"ACM Trans. Math. Softw."}
  1063. X
  1064. XMACRO {toois} {"ACM Trans. Office Inf. Syst."}
  1065. X
  1066. XMACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  1067. X
  1068. XMACRO {tcs} {"Theoretical Comput. Sci."}
  1069. X
  1070. XREAD
  1071. X
  1072. XFUNCTION {sortify}
  1073. X{ purify$
  1074. X  "l" change.case$
  1075. X}
  1076. X
  1077. XINTEGERS { len }
  1078. X
  1079. XFUNCTION {chop.word}
  1080. X{ 's :=
  1081. X  'len :=
  1082. X  s #1 len substring$ =
  1083. X    { s len #1 + global.max$ substring$ }
  1084. X    's
  1085. X  if$
  1086. X}
  1087. X
  1088. XFUNCTION {sort.format.names}
  1089. X{ 's :=
  1090. X  #1 'nameptr :=
  1091. X  ""
  1092. X  s num.names$ 'numnames :=
  1093. X  numnames 'namesleft :=
  1094. X    { namesleft #0 > }
  1095. X    { nameptr #1 >
  1096. X        { "   " * }
  1097. X        'skip$
  1098. X      if$
  1099. X      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't :=
  1100. X      nameptr numnames = t "others" = and
  1101. X        { "et al" * }
  1102. X        { t sortify * }
  1103. X      if$
  1104. X      nameptr #1 + 'nameptr :=
  1105. X      namesleft #1 - 'namesleft :=
  1106. X    }
  1107. X  while$
  1108. X}
  1109. X
  1110. XFUNCTION {sort.format.title}
  1111. X{ 't :=
  1112. X  "A " #2
  1113. X    "An " #3
  1114. X      "The " #4 t chop.word
  1115. X    chop.word
  1116. X  chop.word
  1117. X  sortify
  1118. X  #1 global.max$ substring$
  1119. X}
  1120. X
  1121. XFUNCTION {author.sort}
  1122. X{ author empty$
  1123. X    { key empty$
  1124. X        { "to sort, need author or key in " cite$ * warning$
  1125. X          ""
  1126. X        }
  1127. X        { key sortify }
  1128. X      if$
  1129. X    }
  1130. X    { author sort.format.names }
  1131. X  if$
  1132. X}
  1133. X
  1134. XFUNCTION {author.editor.sort}
  1135. X{ author empty$
  1136. X    { editor empty$
  1137. X        { key empty$
  1138. X            { "to sort, need author, editor, or key in " cite$ * warning$
  1139. X              ""
  1140. X            }
  1141. X            { key sortify }
  1142. X          if$
  1143. X        }
  1144. X        { editor sort.format.names }
  1145. X      if$
  1146. X    }
  1147. X    { author sort.format.names }
  1148. X  if$
  1149. X}
  1150. X
  1151. XFUNCTION {author.organization.sort}
  1152. X{ author empty$
  1153. X    { organization empty$
  1154. X        { key empty$
  1155. X            { "to sort, need author, organization, or key in " cite$ * warning$
  1156. X              ""
  1157. X            }
  1158. X            { key sortify }
  1159. X          if$
  1160. X        }
  1161. X        { "The " #4 organization chop.word sortify }
  1162. X      if$
  1163. X    }
  1164. X    { author sort.format.names }
  1165. X  if$
  1166. X}
  1167. X
  1168. XFUNCTION {editor.organization.sort}
  1169. X{ editor empty$
  1170. X    { organization empty$
  1171. X        { key empty$
  1172. X            { "to sort, need editor, organization, or key in " cite$ * warning$
  1173. X              ""
  1174. X            }
  1175. X            { key sortify }
  1176. X          if$
  1177. X        }
  1178. X        { "The " #4 organization chop.word sortify }
  1179. X      if$
  1180. X    }
  1181. X    { editor sort.format.names }
  1182. X  if$
  1183. X}
  1184. X
  1185. XFUNCTION {presort}
  1186. X{ type$ "book" =
  1187. X  type$ "inbook" =
  1188. X  or
  1189. X    'author.editor.sort
  1190. X    { type$ "proceedings" =
  1191. X        'editor.organization.sort
  1192. X        { type$ "manual" =
  1193. X            'author.organization.sort
  1194. X            'author.sort
  1195. X          if$
  1196. X        }
  1197. X      if$
  1198. X    }
  1199. X  if$
  1200. X  "    "
  1201. X  *
  1202. X  year field.or.null sortify
  1203. X  *
  1204. X  "    "
  1205. X  *
  1206. X  title field.or.null
  1207. X  sort.format.title
  1208. X  *
  1209. X  #1 entry.max$ substring$
  1210. X  'sort.key$ :=
  1211. X}
  1212. X
  1213. XITERATE {presort}
  1214. X
  1215. XSORT
  1216. X
  1217. XSTRINGS { longest.label }
  1218. X
  1219. XINTEGERS { number.label longest.label.width }
  1220. X
  1221. XFUNCTION {initialize.longest.label}
  1222. X{ "" 'longest.label :=
  1223. X  #1 'number.label :=
  1224. X  #0 'longest.label.width :=
  1225. X}
  1226. X
  1227. XFUNCTION {longest.label.pass}
  1228. X{ number.label int.to.str$ 'label :=
  1229. X  number.label #1 + 'number.label :=
  1230. X  label width$ longest.label.width >
  1231. X    { label 'longest.label :=
  1232. X      label width$ 'longest.label.width :=
  1233. X    }
  1234. X    'skip$
  1235. X  if$
  1236. X}
  1237. X
  1238. XEXECUTE {initialize.longest.label}
  1239. X
  1240. XITERATE {longest.label.pass}
  1241. X
  1242. XFUNCTION {begin.bib}
  1243. X{ preamble$ empty$
  1244. X    'skip$
  1245. X    { preamble$ write$ newline$ }
  1246. X  if$
  1247. X  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1248. X}
  1249. X
  1250. XEXECUTE {begin.bib}
  1251. X
  1252. XEXECUTE {init.state.consts}
  1253. X
  1254. XITERATE {call.type$}
  1255. X
  1256. XFUNCTION {end.bib}
  1257. X{ newline$
  1258. X  "\end{thebibliography}" write$ newline$
  1259. X}
  1260. X
  1261. XEXECUTE {end.bib}
  1262. END_OF_FILE
  1263.   if test 20820 -ne `wc -c <'abbrv.bst'`; then
  1264.     echo shar: \"'abbrv.bst'\" unpacked with wrong size!
  1265.   fi
  1266.   # end of 'abbrv.bst'
  1267. fi
  1268. if test -f 'annote.sty' -a "${1}" != "-c" ; then 
  1269.   echo shar: Will not clobber existing file \"'annote.sty'\"
  1270. else
  1271.   echo shar: Extracting \"'annote.sty'\" \(287 characters\)
  1272.   sed "s/^X//" >'annote.sty' <<'END_OF_FILE'
  1273. X% annote.sty, by Yves Arrouye (arrouye@imag.imag.fr)
  1274. X%
  1275. X% This style file must be used in conjunction with a .bst file
  1276. X% supporting the annote environment, and writing annotations in such
  1277. X% an environment.
  1278. X%
  1279. X% Grenoble, April 13, 1993
  1280. X
  1281. X\newenvironment{annote}{\begin{quote}}{\end{quote}}
  1282. END_OF_FILE
  1283.   if test 287 -ne `wc -c <'annote.sty'`; then
  1284.     echo shar: \"'annote.sty'\" unpacked with wrong size!
  1285.   fi
  1286.   # end of 'annote.sty'
  1287. fi
  1288. if test -f 'annotebib.add' -a "${1}" != "-c" ; then 
  1289.   echo shar: Will not clobber existing file \"'annotebib.add'\"
  1290. else
  1291.   echo shar: Extracting \"'annotebib.add'\" \(628 characters\)
  1292.   sed "s/^X//" >'annotebib.add' <<'END_OF_FILE'
  1293. X% annotebib.add: what to add/change to a .bst file to support annotations
  1294. X%
  1295. X% Yves Arrouye (arrouye@imag.imag.fr)
  1296. X%
  1297. X% April 13, 1993
  1298. X
  1299. X% You have to add the following field to the ENTRY list (after the
  1300. X% address field)
  1301. X
  1302. Xannote
  1303. X
  1304. X% This function has to be added to your .bst file
  1305. X
  1306. XFUNCTION {format.annote}
  1307. X{ annote empty$
  1308. X    { "" }
  1309. X        { "\ifx\annote\undefined\else\begin{annote} "
  1310. X      annote
  1311. X      * " \end{annote}\fi " *
  1312. X    }
  1313. X      if$
  1314. X}
  1315. X
  1316. X% The fin.entry function is changed to call format.annote just before
  1317. X% the end (closing brace) of the function.
  1318. X
  1319. XFUNCTION {fin.entry}
  1320. X{ add.period$
  1321. X  write$
  1322. X  newline$
  1323. X  format.annote write$
  1324. X}
  1325. END_OF_FILE
  1326.   if test 628 -ne `wc -c <'annotebib.add'`; then
  1327.     echo shar: \"'annotebib.add'\" unpacked with wrong size!
  1328.   fi
  1329.   # end of 'annotebib.add'
  1330. fi
  1331. if test -f 'sample.bib' -a "${1}" != "-c" ; then 
  1332.   echo shar: Will not clobber existing file \"'sample.bib'\"
  1333. else
  1334.   echo shar: Extracting \"'sample.bib'\" \(5203 characters\)
  1335.   sed "s/^X//" >'sample.bib' <<'END_OF_FILE'
  1336. X
  1337. X
  1338. X@manual{gnu:lew90el,
  1339. X   author = {Bil Lewis and Dan {LaLiberte} and {the GNU Manual Group}},
  1340. X   address = {675 Mass Ave, Cambridge, MA 02139},
  1341. X   edition = {1.03},
  1342. X   month = dec,
  1343. X   organization = {Free Software Foundation},
  1344. X   title = {{GNU Emacs Lisp Reference Manual}},
  1345. X   year = {1990},
  1346. X   annote = {Manuel de r\'ef\'erence d'Elisp (pour Emacs Lisp), le Lisp sp\'ecialis\'e int\'egr\'e \`a
  1347. XEmacs. Ce Lisp permet d'\'etendre facilement les fonctionnalit\'es d'Emacs, et dispose, outre les primitives Lisp ``classiques'', d'un tr\`es grand nombre de primitives sp\'ecialis\'ees dans la gestion de l'\'edition (insertion, destruction, recherche et remplacement de cha\^\i{}nes et d'expressions r\'eguli\`eres, gestion des modes et fen\^etres d'Emacs, etc\ldots{}), la manipulation de fichiers et la gestion de processus ``attach\'es'' \`a Emacs.}
  1348. X}
  1349. X
  1350. X@manual{gnu:sta92em,
  1351. X   author = {Richard M. Stallman},
  1352. X   address = {675 Mass Ave, Cambridge, MA 02139},
  1353. X   edition = {7},
  1354. X   month = sep,
  1355. X   note = {Emacs Version 18.58},
  1356. X   organization = {Free Software Foundation},
  1357. X   title = {{GNU Emacs Manual}},
  1358. X   year = {1992},
  1359. X   annote = {Emacs est un \'editeur de texte extr\^emement puissant, facilement extensible gr\^ace au
  1360. XLisp sp\'ecialis\'e qui lui est int\'egr\'e et qui permet de reprogrammer enti\`erement
  1361. Xles fonctionnalit\'es de l'\'editeur, ainsi que d'en ajouter de nouvelles.
  1362. X\par 
  1363. XIl est possible de trouver un ``mode'' Emacs pour faciliter \`a peu pr\`es n'importe quelle
  1364. Xt\^ache d'\'edition, que ce soit de la saisie de texte dans un langage donn\'e ou
  1365. Xl'interaction avec un logiciel complexe\ldots{}}
  1366. X}
  1367. X
  1368. X@article{lng:lib91a,
  1369. X   author = {Don Libes},
  1370. X   journal = {Computing Systems},
  1371. X   number = {2},
  1372. X   pages = {99-125},
  1373. X   title = {{expect: Scripts for Controlling Interactive Processes}},
  1374. X   volume = {4},
  1375. X   year = {1991},
  1376. X   annote = {Le langage expect est bas\'e sur Tcl, auquel il ajoute la possibilit\'e de contr\^oler n'importe quel programme Unix, interactif ou non, sous forme de processus attach\'e au programme expect.
  1377. X\par
  1378. XComme Tcl, expect peut \^etre inclus dans une application, lui apportant alors de grandes facilit\'es d'extension.
  1379. X\par 
  1380. XCet article pr\'esente le langage en donnant un certain nombre de scripts utilis\'es dans des domaines vari\'es (administration syst\`eme, s\'ecurit\'e, jeux (!), communication,
  1381. X\ldots{}).
  1382. X
  1383. X}
  1384. X}
  1385. X
  1386. X@techreport{lng:lib91b,
  1387. X   author = {Don Libes},
  1388. X   address = {Gaithesburg, MD},
  1389. X   institution = {National Institute of Standards and Technology},
  1390. X   number = {NIST IR 744-91},
  1391. X   title = {{expect User Manual}},
  1392. X   year = {1991},
  1393. X   annote = {Le langage expect est bas\'e sur Tcl, auquel il ajoute la possibilit\'e de contr\^oler n'importe quel programme Unix, interactif ou non, sous forme de processus attach\'e au programme expect.
  1394. X\par 
  1395. XComme Tcl, expect peut \^etre inclus dans une application, lui apportant alors de grandes facilit\'es d'extension.
  1396. X}
  1397. X}
  1398. X
  1399. X@inproceedings{lng:ous90,
  1400. X   author = {John Ousterhout},
  1401. X   booktitle = {{Proceedings of the Winter 1990 USENIX Conference}},
  1402. X   crossref = {prc:usenix90w},
  1403. X   title = {{Tcl: An Embeddable Command Language}},
  1404. X   year = {1990},
  1405. X   annote = {Tcl est un langage destin\'e \`a \^etre inclus dans des applications afin de leur fournir un langage int\'egr\'e simple et puissant.
  1406. X\par 
  1407. XUne fois le langage ajout\'e \`a l'application, celle-ci fournit un certain nombre de points d'entr\'ee vers ses fonctionnalit\'es, qui peuvent alors \^etre utilis\'ees par un simple appel proc\'edural dans les programmes que l'utilisateur \'ecrit en Tcl.
  1408. X\par 
  1409. XTcl a \'et\'e utilis\'e dans beaucoup d'applications, dont un \'editeur de texte enti\`erement reconfigurable et programmable, Point, qui utilise Tcl et son extension pour X, Tk.}
  1410. X}
  1411. X
  1412. X@inproceedings{lng:bir92,
  1413. X   author = {J. J. Birchman and S. L. Tanimoto},
  1414. X   title = {{An Implementation of the VIVA Visual Language on the NeXT Computer}},
  1415. X   year = {1992},
  1416. X   annote = {VIVA est un langage de programmation visuelle destin\'e au traitement d'image. Il utilise des ic\^ones pour repr\'esenter les op\'erateurs de traitement d'image, et des arcs orient\'es pour repr\'esenter le flot de donn\'es (images) entre les op\'erateurs.
  1417. X\par 
  1418. XLe syst\`eme est organis\'e en deux niveaux accompagn\'es d'un certain nombre de modules. Le niveaux sup\'erieur est la pr\'esentation de l'environnement de programmation \`a l'utilisateur, lui permettant de cr\'eer, modifier, sauver et ex\'ecuter ses programmes. Le niveau inf\'erieur est la structure interne du langage, qui g\`ere la programmation visuelle, le d\'eclenchement des op\'erateurs \`a l'arriv\'ee de nouvelles donn\`ees, et la gestion des ic\^ones (op\'erateurs).
  1419. X\par 
  1420. XVIVA propose un mod\`ele synchrone de flot de donn\'ees, dans un environnement ``pleinement vivant'', i.e. refl\'etant \`a tout moment l'\'etat du syst\`eme et les actions de l'utilisateur.
  1421. X\par 
  1422. XVIVA a \'et\'e d\'evelopp\'e pour faciliter l'apprentissage des techniques d'imagerie m\'edicale par des m\'edecins sans connaissances informatiques.}
  1423. X}
  1424. X
  1425. X@proceedings{prc:usenix90w,
  1426. X   address = {Washington, DC},
  1427. X   month = jan,
  1428. X   title = {{Proceedings of the Winter 1990 USENIX Conference}},
  1429. X   year = {1990}
  1430. X}
  1431. END_OF_FILE
  1432.   if test 5203 -ne `wc -c <'sample.bib'`; then
  1433.     echo shar: \"'sample.bib'\" unpacked with wrong size!
  1434.   fi
  1435.   # end of 'sample.bib'
  1436. fi
  1437. if test -f 'sample.tex' -a "${1}" != "-c" ; then 
  1438.   echo shar: Will not clobber existing file \"'sample.tex'\"
  1439. else
  1440.   echo shar: Extracting \"'sample.tex'\" \(601 characters\)
  1441.   sed "s/^X//" >'sample.tex' <<'END_OF_FILE'
  1442. X% sample.tex: a test for the `annote' package. Assume that you are
  1443. X% using the annote-compatible `plain.bst' BibTeX style.
  1444. X
  1445. X% To format: latex sample
  1446. X%            bibtex sample
  1447. X%            latex sample
  1448. X%            latex sample
  1449. X
  1450. X% Yves Arrouye
  1451. X% May, 1993
  1452. X
  1453. X\documentstyle[a4,refrench]{article}
  1454. X
  1455. X\begin{document}
  1456. X\section*{Testing the `annote' package with {\tt plain.bst}}
  1457. X% Here is an annote environment, comment it to look the non-annotated
  1458. X% bibliography. 
  1459. X\newenvironment{annote}{\begin{quote}\em}{\end{quote}}
  1460. X% Cite all
  1461. X\nocite{*}
  1462. X\bibliography{sample}
  1463. X\bibliographystyle{plain}
  1464. X\end{document}
  1465. END_OF_FILE
  1466.   if test 601 -ne `wc -c <'sample.tex'`; then
  1467.     echo shar: \"'sample.tex'\" unpacked with wrong size!
  1468.   fi
  1469.   # end of 'sample.tex'
  1470. fi
  1471. if test -f 'unsrt.bst' -a "${1}" != "-c" ; then 
  1472.   echo shar: Will not clobber existing file \"'unsrt.bst'\"
  1473. else
  1474.   echo shar: Extracting \"'unsrt.bst'\" \(18521 characters\)
  1475.   sed "s/^X//" >'unsrt.bst' <<'END_OF_FILE'
  1476. X% Style file modified on Wed May 12 20:20:52 1993
  1477. X%                     by Yves Arrouye <arrouye@mistral>
  1478. X
  1479. X% This bibliography style was made annote-compatible by annotebib.el v1.0
  1480. X% It can be used for both annotated and non-annotated bibliographies listing
  1481. X% (annote package by Yves Arrouye <arrouye@imag.imag.fr>)
  1482. X
  1483. X% BibTeX standard bibliography style `unsrt'
  1484. X        % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
  1485. X        % Copyright (C) 1985, all rights reserved.
  1486. X        % Copying of this file is authorized only if either
  1487. X        % (1) you make absolutely no changes to your copy, including name, or
  1488. X        % (2) if you do make changes, you name it something other than
  1489. X        % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  1490. X        % This restriction helps ensure that all standard styles are identical.
  1491. X        % The file btxbst.doc has the documentation for this style.
  1492. X
  1493. XENTRY
  1494. X  { annote
  1495. X    address
  1496. X    author
  1497. X    booktitle
  1498. X    chapter
  1499. X    edition
  1500. X    editor
  1501. X    howpublished
  1502. X    institution
  1503. X    journal
  1504. X    key
  1505. X    month
  1506. X    note
  1507. X    number
  1508. X    organization
  1509. X    pages
  1510. X    publisher
  1511. X    school
  1512. X    series
  1513. X    title
  1514. X    type
  1515. X    volume
  1516. X    year
  1517. X  }
  1518. X  {}
  1519. X  { label }
  1520. X
  1521. XINTEGERS { output.state before.all mid.sentence after.sentence after.block }
  1522. X
  1523. XFUNCTION {init.state.consts}
  1524. X{ #0 'before.all :=
  1525. X  #1 'mid.sentence :=
  1526. X  #2 'after.sentence :=
  1527. X  #3 'after.block :=
  1528. X}
  1529. X
  1530. XSTRINGS { s t }
  1531. X
  1532. XFUNCTION {output.nonnull}
  1533. X{ 's :=
  1534. X  output.state mid.sentence =
  1535. X    { ", " * write$ }
  1536. X    { output.state after.block =
  1537. X        { add.period$ write$
  1538. X          newline$
  1539. X          "\newblock " write$
  1540. X        }
  1541. X        { output.state before.all =
  1542. X            'write$
  1543. X            { add.period$ " " * write$ }
  1544. X          if$
  1545. X        }
  1546. X      if$
  1547. X      mid.sentence 'output.state :=
  1548. X    }
  1549. X  if$
  1550. X  s
  1551. X}
  1552. X
  1553. XFUNCTION {output}
  1554. X{ duplicate$ empty$
  1555. X    'pop$
  1556. X    'output.nonnull
  1557. X  if$
  1558. X}
  1559. X
  1560. XFUNCTION {output.check}
  1561. X{ 't :=
  1562. X  duplicate$ empty$
  1563. X    { pop$ "empty " t * " in " * cite$ * warning$ }
  1564. X    'output.nonnull
  1565. X  if$
  1566. X}
  1567. X
  1568. XFUNCTION {output.bibitem}
  1569. X{ newline$
  1570. X  "\bibitem{" write$
  1571. X  cite$ write$
  1572. X  "}" write$
  1573. X  newline$
  1574. X  ""
  1575. X  before.all 'output.state :=
  1576. X}
  1577. X
  1578. XFUNCTION {format.annote}
  1579. X{ annote empty$
  1580. X        { "" }
  1581. X        { "\ifx\annote\undefined\else\begin{annote} "
  1582. X          annote
  1583. X          * " \end{annote}\fi " *
  1584. X        }
  1585. X      if$
  1586. X}
  1587. X
  1588. XFUNCTION {fin.entry}
  1589. X{ add.period$
  1590. X  write$
  1591. X  newline$
  1592. X  format.annote write$
  1593. X}
  1594. X
  1595. XFUNCTION {new.block}
  1596. X{ output.state before.all =
  1597. X    'skip$
  1598. X    { after.block 'output.state := }
  1599. X  if$
  1600. X}
  1601. X
  1602. XFUNCTION {new.sentence}
  1603. X{ output.state after.block =
  1604. X    'skip$
  1605. X    { output.state before.all =
  1606. X        'skip$
  1607. X        { after.sentence 'output.state := }
  1608. X      if$
  1609. X    }
  1610. X  if$
  1611. X}
  1612. X
  1613. XFUNCTION {not}
  1614. X{   { #0 }
  1615. X    { #1 }
  1616. X  if$
  1617. X}
  1618. X
  1619. XFUNCTION {and}
  1620. X{   'skip$
  1621. X    { pop$ #0 }
  1622. X  if$
  1623. X}
  1624. X
  1625. XFUNCTION {or}
  1626. X{   { pop$ #1 }
  1627. X    'skip$
  1628. X  if$
  1629. X}
  1630. X
  1631. XFUNCTION {new.block.checka}
  1632. X{ empty$
  1633. X    'skip$
  1634. X    'new.block
  1635. X  if$
  1636. X}
  1637. X
  1638. XFUNCTION {new.block.checkb}
  1639. X{ empty$
  1640. X  swap$ empty$
  1641. X  and
  1642. X    'skip$
  1643. X    'new.block
  1644. X  if$
  1645. X}
  1646. X
  1647. XFUNCTION {new.sentence.checka}
  1648. X{ empty$
  1649. X    'skip$
  1650. X    'new.sentence
  1651. X  if$
  1652. X}
  1653. X
  1654. XFUNCTION {new.sentence.checkb}
  1655. X{ empty$
  1656. X  swap$ empty$
  1657. X  and
  1658. X    'skip$
  1659. X    'new.sentence
  1660. X  if$
  1661. X}
  1662. X
  1663. XFUNCTION {field.or.null}
  1664. X{ duplicate$ empty$
  1665. X    { pop$ "" }
  1666. X    'skip$
  1667. X  if$
  1668. X}
  1669. X
  1670. XFUNCTION {emphasize}
  1671. X{ duplicate$ empty$
  1672. X    { pop$ "" }
  1673. X    { "{\em " swap$ * "}" * }
  1674. X  if$
  1675. X}
  1676. X
  1677. XINTEGERS { nameptr namesleft numnames }
  1678. X
  1679. XFUNCTION {format.names}
  1680. X{ 's :=
  1681. X  #1 'nameptr :=
  1682. X  s num.names$ 'numnames :=
  1683. X  numnames 'namesleft :=
  1684. X    { namesleft #0 > }
  1685. X    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
  1686. X      nameptr #1 >
  1687. X        { namesleft #1 >
  1688. X            { ", " * t * }
  1689. X            { numnames #2 >
  1690. X                { "," * }
  1691. X                'skip$
  1692. X              if$
  1693. X              t "others" =
  1694. X                { " et~al." * }
  1695. X                { " and " * t * }
  1696. X              if$
  1697. X            }
  1698. X          if$
  1699. X        }
  1700. X        't
  1701. X      if$
  1702. X      nameptr #1 + 'nameptr :=
  1703. X      namesleft #1 - 'namesleft :=
  1704. X    }
  1705. X  while$
  1706. X}
  1707. X
  1708. XFUNCTION {format.authors}
  1709. X{ author empty$
  1710. X    { "" }
  1711. X    { author format.names }
  1712. X  if$
  1713. X}
  1714. X
  1715. XFUNCTION {format.editors}
  1716. X{ editor empty$
  1717. X    { "" }
  1718. X    { editor format.names
  1719. X      editor num.names$ #1 >
  1720. X        { ", editors" * }
  1721. X        { ", editor" * }
  1722. X      if$
  1723. X    }
  1724. X  if$
  1725. X}
  1726. X
  1727. XFUNCTION {format.title}
  1728. X{ title empty$
  1729. X    { "" }
  1730. X    { title "t" change.case$ }
  1731. X  if$
  1732. X}
  1733. X
  1734. XFUNCTION {n.dashify}
  1735. X{ 't :=
  1736. X  ""
  1737. X    { t empty$ not }
  1738. X    { t #1 #1 substring$ "-" =
  1739. X        { t #1 #2 substring$ "--" = not
  1740. X            { "--" *
  1741. X              t #2 global.max$ substring$ 't :=
  1742. X            }
  1743. X            {   { t #1 #1 substring$ "-" = }
  1744. X                { "-" *
  1745. X                  t #2 global.max$ substring$ 't :=
  1746. X                }
  1747. X              while$
  1748. X            }
  1749. X          if$
  1750. X        }
  1751. X        { t #1 #1 substring$ *
  1752. X          t #2 global.max$ substring$ 't :=
  1753. X        }
  1754. X      if$
  1755. X    }
  1756. X  while$
  1757. X}
  1758. X
  1759. XFUNCTION {format.date}
  1760. X{ year empty$
  1761. X    { month empty$
  1762. X        { "" }
  1763. X        { "there's a month but no year in " cite$ * warning$
  1764. X          month
  1765. X        }
  1766. X      if$
  1767. X    }
  1768. X    { month empty$
  1769. X        'year
  1770. X        { month " " * year * }
  1771. X      if$
  1772. X    }
  1773. X  if$
  1774. X}
  1775. X
  1776. XFUNCTION {format.btitle}
  1777. X{ title emphasize
  1778. X}
  1779. X
  1780. XFUNCTION {tie.or.space.connect}
  1781. X{ duplicate$ text.length$ #3 <
  1782. X    { "~" }
  1783. X    { " " }
  1784. X  if$
  1785. X  swap$ * *
  1786. X}
  1787. X
  1788. XFUNCTION {either.or.check}
  1789. X{ empty$
  1790. X    'pop$
  1791. X    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  1792. X  if$
  1793. X}
  1794. X
  1795. XFUNCTION {format.bvolume}
  1796. X{ volume empty$
  1797. X    { "" }
  1798. X    { "volume" volume tie.or.space.connect
  1799. X      series empty$
  1800. X        'skip$
  1801. X        { " of " * series emphasize * }
  1802. X      if$
  1803. X      "volume and number" number either.or.check
  1804. X    }
  1805. X  if$
  1806. X}
  1807. X
  1808. XFUNCTION {format.number.series}
  1809. X{ volume empty$
  1810. X    { number empty$
  1811. X        { series field.or.null }
  1812. X        { output.state mid.sentence =
  1813. X            { "number" }
  1814. X            { "Number" }
  1815. X          if$
  1816. X          number tie.or.space.connect
  1817. X          series empty$
  1818. X            { "there's a number but no series in " cite$ * warning$ }
  1819. X            { " in " * series * }
  1820. X          if$
  1821. X        }
  1822. X      if$
  1823. X    }
  1824. X    { "" }
  1825. X  if$
  1826. X}
  1827. X
  1828. XFUNCTION {format.edition}
  1829. X{ edition empty$
  1830. X    { "" }
  1831. X    { output.state mid.sentence =
  1832. X        { edition "l" change.case$ " edition" * }
  1833. X        { edition "t" change.case$ " edition" * }
  1834. X      if$
  1835. X    }
  1836. X  if$
  1837. X}
  1838. X
  1839. XINTEGERS { multiresult }
  1840. X
  1841. XFUNCTION {multi.page.check}
  1842. X{ 't :=
  1843. X  #0 'multiresult :=
  1844. X    { multiresult not
  1845. X      t empty$ not
  1846. X      and
  1847. X    }
  1848. X    { t #1 #1 substring$
  1849. X      duplicate$ "-" =
  1850. X      swap$ duplicate$ "," =
  1851. X      swap$ "+" =
  1852. X      or or
  1853. X        { #1 'multiresult := }
  1854. X        { t #2 global.max$ substring$ 't := }
  1855. X      if$
  1856. X    }
  1857. X  while$
  1858. X  multiresult
  1859. X}
  1860. X
  1861. XFUNCTION {format.pages}
  1862. X{ pages empty$
  1863. X    { "" }
  1864. X    { pages multi.page.check
  1865. X        { "pages" pages n.dashify tie.or.space.connect }
  1866. X        { "page" pages tie.or.space.connect }
  1867. X      if$
  1868. X    }
  1869. X  if$
  1870. X}
  1871. X
  1872. XFUNCTION {format.vol.num.pages}
  1873. X{ volume field.or.null
  1874. X  number empty$
  1875. X    'skip$
  1876. X    { "(" number * ")" * *
  1877. X      volume empty$
  1878. X        { "there's a number but no volume in " cite$ * warning$ }
  1879. X        'skip$
  1880. X      if$
  1881. X    }
  1882. X  if$
  1883. X  pages empty$
  1884. X    'skip$
  1885. X    { duplicate$ empty$
  1886. X        { pop$ format.pages }
  1887. X        { ":" * pages n.dashify * }
  1888. X      if$
  1889. X    }
  1890. X  if$
  1891. X}
  1892. X
  1893. XFUNCTION {format.chapter.pages}
  1894. X{ chapter empty$
  1895. X    'format.pages
  1896. X    { type empty$
  1897. X        { "chapter" }
  1898. X        { type "l" change.case$ }
  1899. X      if$
  1900. X      chapter tie.or.space.connect
  1901. X      pages empty$
  1902. X        'skip$
  1903. X        { ", " * format.pages * }
  1904. X      if$
  1905. X    }
  1906. X  if$
  1907. X}
  1908. X
  1909. XFUNCTION {format.in.ed.booktitle}
  1910. X{ booktitle empty$
  1911. X    { "" }
  1912. X    { editor empty$
  1913. X        { "In " booktitle emphasize * }
  1914. X        { "In " format.editors * ", " * booktitle emphasize * }
  1915. X      if$
  1916. X    }
  1917. X  if$
  1918. X}
  1919. X
  1920. XFUNCTION {empty.misc.check}
  1921. X{ author empty$ title empty$ howpublished empty$
  1922. X  month empty$ year empty$ note empty$
  1923. X  and and and and and
  1924. X    { "all relevant fields are empty in " cite$ * warning$ }
  1925. X    'skip$
  1926. X  if$
  1927. X}
  1928. X
  1929. XFUNCTION {format.thesis.type}
  1930. X{ type empty$
  1931. X    'skip$
  1932. X    { pop$
  1933. X      type "t" change.case$
  1934. X    }
  1935. X  if$
  1936. X}
  1937. X
  1938. XFUNCTION {format.tr.number}
  1939. X{ type empty$
  1940. X    { "Technical Report" }
  1941. X    'type
  1942. X  if$
  1943. X  number empty$
  1944. X    { "t" change.case$ }
  1945. X    { number tie.or.space.connect }
  1946. X  if$
  1947. X}
  1948. X
  1949. XFUNCTION {format.article.crossref}
  1950. X{ key empty$
  1951. X    { journal empty$
  1952. X        { "need key or journal for " cite$ * " to crossref " * crossref *
  1953. X          warning$
  1954. X          ""
  1955. X        }
  1956. X        { "In {\em " journal * "\/}" * }
  1957. X      if$
  1958. X    }
  1959. X    { "In " key * }
  1960. X  if$
  1961. X  " \cite{" * crossref * "}" *
  1962. X}
  1963. X
  1964. XFUNCTION {format.crossref.editor}
  1965. X{ editor #1 "{vv~}{ll}" format.name$
  1966. X  editor num.names$ duplicate$
  1967. X  #2 >
  1968. X    { pop$ " et~al." * }
  1969. X    { #2 <
  1970. X        'skip$
  1971. X        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  1972. X            { " et~al." * }
  1973. X            { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  1974. X          if$
  1975. X        }
  1976. X      if$
  1977. X    }
  1978. X  if$
  1979. X}
  1980. X
  1981. XFUNCTION {format.book.crossref}
  1982. X{ volume empty$
  1983. X    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  1984. X      "In "
  1985. X    }
  1986. X    { "Volume" volume tie.or.space.connect
  1987. X      " of " *
  1988. X    }
  1989. X  if$
  1990. X  editor empty$
  1991. X  editor field.or.null author field.or.null =
  1992. X  or
  1993. X    { key empty$
  1994. X        { series empty$
  1995. X            { "need editor, key, or series for " cite$ * " to crossref " *
  1996. X              crossref * warning$
  1997. X              "" *
  1998. X            }
  1999. X            { "{\em " * series * "\/}" * }
  2000. X          if$
  2001. X        }
  2002. X        { key * }
  2003. X      if$
  2004. X    }
  2005. X    { format.crossref.editor * }
  2006. X  if$
  2007. X  " \cite{" * crossref * "}" *
  2008. X}
  2009. X
  2010. XFUNCTION {format.incoll.inproc.crossref}
  2011. X{ editor empty$
  2012. X  editor field.or.null author field.or.null =
  2013. X  or
  2014. X    { key empty$
  2015. X        { booktitle empty$
  2016. X            { "need editor, key, or booktitle for " cite$ * " to crossref " *
  2017. X              crossref * warning$
  2018. X              ""
  2019. X            }
  2020. X            { "In {\em " booktitle * "\/}" * }
  2021. X          if$
  2022. X        }
  2023. X        { "In " key * }
  2024. X      if$
  2025. X    }
  2026. X    { "In " format.crossref.editor * }
  2027. X  if$
  2028. X  " \cite{" * crossref * "}" *
  2029. X}
  2030. X
  2031. XFUNCTION {article}
  2032. X{ output.bibitem
  2033. X  format.authors "author" output.check
  2034. X  new.block
  2035. X  format.title "title" output.check
  2036. X  new.block
  2037. X  crossref missing$
  2038. X    { journal emphasize "journal" output.check
  2039. X      format.vol.num.pages output
  2040. X      format.date "year" output.check
  2041. X    }
  2042. X    { format.article.crossref output.nonnull
  2043. X      format.pages output
  2044. X    }
  2045. X  if$
  2046. X  new.block
  2047. X  note output
  2048. X  fin.entry
  2049. X}
  2050. X
  2051. XFUNCTION {book}
  2052. X{ output.bibitem
  2053. X  author empty$
  2054. X    { format.editors "author and editor" output.check }
  2055. X    { format.authors output.nonnull
  2056. X      crossref missing$
  2057. X        { "author and editor" editor either.or.check }
  2058. X        'skip$
  2059. X      if$
  2060. X    }
  2061. X  if$
  2062. X  new.block
  2063. X  format.btitle "title" output.check
  2064. X  crossref missing$
  2065. X    { format.bvolume output
  2066. X      new.block
  2067. X      format.number.series output
  2068. X      new.sentence
  2069. X      publisher "publisher" output.check
  2070. X      address output
  2071. X    }
  2072. X    { new.block
  2073. X      format.book.crossref output.nonnull
  2074. X    }
  2075. X  if$
  2076. X  format.edition output
  2077. X  format.date "year" output.check
  2078. X  new.block
  2079. X  note output
  2080. X  fin.entry
  2081. X}
  2082. X
  2083. XFUNCTION {booklet}
  2084. X{ output.bibitem
  2085. X  format.authors output
  2086. X  new.block
  2087. X  format.title "title" output.check
  2088. X  howpublished address new.block.checkb
  2089. X  howpublished output
  2090. X  address output
  2091. X  format.date output
  2092. X  new.block
  2093. X  note output
  2094. X  fin.entry
  2095. X}
  2096. X
  2097. XFUNCTION {inbook}
  2098. X{ output.bibitem
  2099. X  author empty$
  2100. X    { format.editors "author and editor" output.check }
  2101. X    { format.authors output.nonnull
  2102. X      crossref missing$
  2103. X        { "author and editor" editor either.or.check }
  2104. X        'skip$
  2105. X      if$
  2106. X    }
  2107. X  if$
  2108. X  new.block
  2109. X  format.btitle "title" output.check
  2110. X  crossref missing$
  2111. X    { format.bvolume output
  2112. X      format.chapter.pages "chapter and pages" output.check
  2113. X      new.block
  2114. X      format.number.series output
  2115. X      new.sentence
  2116. X      publisher "publisher" output.check
  2117. X      address output
  2118. X    }
  2119. X    { format.chapter.pages "chapter and pages" output.check
  2120. X      new.block
  2121. X      format.book.crossref output.nonnull
  2122. X    }
  2123. X  if$
  2124. X  format.edition output
  2125. X  format.date "year" output.check
  2126. X  new.block
  2127. X  note output
  2128. X  fin.entry
  2129. X}
  2130. X
  2131. XFUNCTION {incollection}
  2132. X{ output.bibitem
  2133. X  format.authors "author" output.check
  2134. X  new.block
  2135. X  format.title "title" output.check
  2136. X  new.block
  2137. X  crossref missing$
  2138. X    { format.in.ed.booktitle "booktitle" output.check
  2139. X      format.bvolume output
  2140. X      format.number.series output
  2141. X      format.chapter.pages output
  2142. X      new.sentence
  2143. X      publisher "publisher" output.check
  2144. X      address output
  2145. X      format.edition output
  2146. X      format.date "year" output.check
  2147. X    }
  2148. X    { format.incoll.inproc.crossref output.nonnull
  2149. X      format.chapter.pages output
  2150. X    }
  2151. X  if$
  2152. X  new.block
  2153. X  note output
  2154. X  fin.entry
  2155. X}
  2156. X
  2157. XFUNCTION {inproceedings}
  2158. X{ output.bibitem
  2159. X  format.authors "author" output.check
  2160. X  new.block
  2161. X  format.title "title" output.check
  2162. X  new.block
  2163. X  crossref missing$
  2164. X    { format.in.ed.booktitle "booktitle" output.check
  2165. X      format.bvolume output
  2166. X      format.number.series output
  2167. X      format.pages output
  2168. X      address empty$
  2169. X        { organization publisher new.sentence.checkb
  2170. X          organization output
  2171. X          publisher output
  2172. X          format.date "year" output.check
  2173. X        }
  2174. X        { address output.nonnull
  2175. X          format.date "year" output.check
  2176. X          new.sentence
  2177. X          organization output
  2178. X          publisher output
  2179. X        }
  2180. X      if$
  2181. X    }
  2182. X    { format.incoll.inproc.crossref output.nonnull
  2183. X      format.pages output
  2184. X    }
  2185. X  if$
  2186. X  new.block
  2187. X  note output
  2188. X  fin.entry
  2189. X}
  2190. X
  2191. XFUNCTION {conference} { inproceedings }
  2192. X
  2193. XFUNCTION {manual}
  2194. X{ output.bibitem
  2195. X  author empty$
  2196. X    { organization empty$
  2197. X        'skip$
  2198. X        { organization output.nonnull
  2199. X          address output
  2200. X        }
  2201. X      if$
  2202. X    }
  2203. X    { format.authors output.nonnull }
  2204. X  if$
  2205. X  new.block
  2206. X  format.btitle "title" output.check
  2207. X  author empty$
  2208. X    { organization empty$
  2209. X        { address new.block.checka
  2210. X          address output
  2211. X        }
  2212. X        'skip$
  2213. X      if$
  2214. X    }
  2215. X    { organization address new.block.checkb
  2216. X      organization output
  2217. X      address output
  2218. X    }
  2219. X  if$
  2220. X  format.edition output
  2221. X  format.date output
  2222. X  new.block
  2223. X  note output
  2224. X  fin.entry
  2225. X}
  2226. X
  2227. XFUNCTION {mastersthesis}
  2228. X{ output.bibitem
  2229. X  format.authors "author" output.check
  2230. X  new.block
  2231. X  format.title "title" output.check
  2232. X  new.block
  2233. X  "Master's thesis" format.thesis.type output.nonnull
  2234. X  school "school" output.check
  2235. X  address output
  2236. X  format.date "year" output.check
  2237. X  new.block
  2238. X  note output
  2239. X  fin.entry
  2240. X}
  2241. X
  2242. XFUNCTION {misc}
  2243. X{ output.bibitem
  2244. X  format.authors output
  2245. X  title howpublished new.block.checkb
  2246. X  format.title output
  2247. X  howpublished new.block.checka
  2248. X  howpublished output
  2249. X  format.date output
  2250. X  new.block
  2251. X  note output
  2252. X  fin.entry
  2253. X  empty.misc.check
  2254. X}
  2255. X
  2256. XFUNCTION {phdthesis}
  2257. X{ output.bibitem
  2258. X  format.authors "author" output.check
  2259. X  new.block
  2260. X  format.btitle "title" output.check
  2261. X  new.block
  2262. X  "PhD thesis" format.thesis.type output.nonnull
  2263. X  school "school" output.check
  2264. X  address output
  2265. X  format.date "year" output.check
  2266. X  new.block
  2267. X  note output
  2268. X  fin.entry
  2269. X}
  2270. X
  2271. XFUNCTION {proceedings}
  2272. X{ output.bibitem
  2273. X  editor empty$
  2274. X    { organization output }
  2275. X    { format.editors output.nonnull }
  2276. X  if$
  2277. X  new.block
  2278. X  format.btitle "title" output.check
  2279. X  format.bvolume output
  2280. X  format.number.series output
  2281. X  address empty$
  2282. X    { editor empty$
  2283. X        { publisher new.sentence.checka }
  2284. X        { organization publisher new.sentence.checkb
  2285. X          organization output
  2286. X        }
  2287. X      if$
  2288. X      publisher output
  2289. X      format.date "year" output.check
  2290. X    }
  2291. X    { address output.nonnull
  2292. X      format.date "year" output.check
  2293. X      new.sentence
  2294. X      editor empty$
  2295. X        'skip$
  2296. X        { organization output }
  2297. X      if$
  2298. X      publisher output
  2299. X    }
  2300. X  if$
  2301. X  new.block
  2302. X  note output
  2303. X  fin.entry
  2304. X}
  2305. X
  2306. XFUNCTION {techreport}
  2307. X{ output.bibitem
  2308. X  format.authors "author" output.check
  2309. X  new.block
  2310. X  format.title "title" output.check
  2311. X  new.block
  2312. X  format.tr.number output.nonnull
  2313. X  institution "institution" output.check
  2314. X  address output
  2315. X  format.date "year" output.check
  2316. X  new.block
  2317. X  note output
  2318. X  fin.entry
  2319. X}
  2320. X
  2321. XFUNCTION {unpublished}
  2322. X{ output.bibitem
  2323. X  format.authors "author" output.check
  2324. X  new.block
  2325. X  format.title "title" output.check
  2326. X  new.block
  2327. X  note "note" output.check
  2328. X  format.date output
  2329. X  fin.entry
  2330. X}
  2331. X
  2332. XFUNCTION {default.type} { misc }
  2333. X
  2334. XMACRO {jan} {"January"}
  2335. X
  2336. XMACRO {feb} {"February"}
  2337. X
  2338. XMACRO {mar} {"March"}
  2339. X
  2340. XMACRO {apr} {"April"}
  2341. X
  2342. XMACRO {may} {"May"}
  2343. X
  2344. XMACRO {jun} {"June"}
  2345. X
  2346. XMACRO {jul} {"July"}
  2347. X
  2348. XMACRO {aug} {"August"}
  2349. X
  2350. XMACRO {sep} {"September"}
  2351. X
  2352. XMACRO {oct} {"October"}
  2353. X
  2354. XMACRO {nov} {"November"}
  2355. X
  2356. XMACRO {dec} {"December"}
  2357. X
  2358. XMACRO {acmcs} {"ACM Computing Surveys"}
  2359. X
  2360. XMACRO {acta} {"Acta Informatica"}
  2361. X
  2362. XMACRO {cacm} {"Communications of the ACM"}
  2363. X
  2364. XMACRO {ibmjrd} {"IBM Journal of Research and Development"}
  2365. X
  2366. XMACRO {ibmsj} {"IBM Systems Journal"}
  2367. X
  2368. XMACRO {ieeese} {"IEEE Transactions on Software Engineering"}
  2369. X
  2370. XMACRO {ieeetc} {"IEEE Transactions on Computers"}
  2371. X
  2372. XMACRO {ieeetcad}
  2373. X {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
  2374. X
  2375. XMACRO {ipl} {"Information Processing Letters"}
  2376. X
  2377. XMACRO {jacm} {"Journal of the ACM"}
  2378. X
  2379. XMACRO {jcss} {"Journal of Computer and System Sciences"}
  2380. X
  2381. XMACRO {scp} {"Science of Computer Programming"}
  2382. X
  2383. XMACRO {sicomp} {"SIAM Journal on Computing"}
  2384. X
  2385. XMACRO {tocs} {"ACM Transactions on Computer Systems"}
  2386. X
  2387. XMACRO {tods} {"ACM Transactions on Database Systems"}
  2388. X
  2389. XMACRO {tog} {"ACM Transactions on Graphics"}
  2390. X
  2391. XMACRO {toms} {"ACM Transactions on Mathematical Software"}
  2392. X
  2393. XMACRO {toois} {"ACM Transactions on Office Information Systems"}
  2394. X
  2395. XMACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
  2396. X
  2397. XMACRO {tcs} {"Theoretical Computer Science"}
  2398. X
  2399. XREAD
  2400. X
  2401. XSTRINGS { longest.label }
  2402. X
  2403. XINTEGERS { number.label longest.label.width }
  2404. X
  2405. XFUNCTION {initialize.longest.label}
  2406. X{ "" 'longest.label :=
  2407. X  #1 'number.label :=
  2408. X  #0 'longest.label.width :=
  2409. X}
  2410. X
  2411. XFUNCTION {longest.label.pass}
  2412. X{ number.label int.to.str$ 'label :=
  2413. X  number.label #1 + 'number.label :=
  2414. X  label width$ longest.label.width >
  2415. X    { label 'longest.label :=
  2416. X      label width$ 'longest.label.width :=
  2417. X    }
  2418. X    'skip$
  2419. X  if$
  2420. X}
  2421. X
  2422. XEXECUTE {initialize.longest.label}
  2423. X
  2424. XITERATE {longest.label.pass}
  2425. X
  2426. XFUNCTION {begin.bib}
  2427. X{ preamble$ empty$
  2428. X    'skip$
  2429. X    { preamble$ write$ newline$ }
  2430. X  if$
  2431. X  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  2432. X}
  2433. X
  2434. XEXECUTE {begin.bib}
  2435. X
  2436. XEXECUTE {init.state.consts}
  2437. X
  2438. XITERATE {call.type$}
  2439. X
  2440. XFUNCTION {end.bib}
  2441. X{ newline$
  2442. X  "\end{thebibliography}" write$ newline$
  2443. X}
  2444. X
  2445. XEXECUTE {end.bib}
  2446. END_OF_FILE
  2447.   if test 18521 -ne `wc -c <'unsrt.bst'`; then
  2448.     echo shar: \"'unsrt.bst'\" unpacked with wrong size!
  2449.   fi
  2450.   # end of 'unsrt.bst'
  2451. fi
  2452. echo shar: End of archive 2 \(of 3\).
  2453. cp /dev/null ark2isdone
  2454. MISSING=""
  2455. for I in 1 2 3 ; do
  2456.     if test ! -f ark${I}isdone ; then
  2457.     MISSING="${MISSING} ${I}"
  2458.     fi
  2459. done
  2460. if test "${MISSING}" = "" ; then
  2461.     echo You have unpacked all 3 archives.
  2462.     rm -f ark[1-9]isdone
  2463. else
  2464.     echo You still must unpack the following archives:
  2465.     echo "        " ${MISSING}
  2466. fi
  2467. exit 0
  2468. exit 0 # Just in case...
  2469.