JHEP.bst 20 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102
  1. %%% jhep.bst %%%
  2. %%% History %%%
  3. %%% 2015feb06 sissa medialab %%%
  4. % UT Physics bibliographic style, ver. 1.2.1 Based on:
  5. %
  6. %X IEEE Transactions bibliography style (29-Jan-88 version)
  7. %X numeric labels, order-of-reference, IEEE abbreviations,
  8. %X quotes around article titles, commas separate all fields
  9. %X except after book titles and before "notes". Otherwise,
  10. %X much like the "plain" family, from which this is adapted.
  11. %X
  12. %X History
  13. %X 9/30/85 (HWT) Original version, by Howard Trickey.
  14. %X 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
  15. %X THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
  16. %
  17. % Modifications: 1) added hypertex support and "archive" and "eprint" fields.
  18. % 2) parentheses around dates, and no "pp." for article entries
  19. % 3) "publisher, address" instead of "address: publisher"
  20. % 4) added "report" field for article entries.
  21. % 5) particle physics-oriented abbreviations, rather than ieee.
  22. % 6) added "collaboration" field, as per
  23. % Jonathan Flynn' suggestion. SPIRES now supports this field.
  24. % 7) added support for new arXIv identifier format
  25. % 8) minor corrections (mg 27/2/2012)
  26. % 9) arXiv links point to arxiv.org and not to xxx.lanl.gov (08/2014)
  27. %
  28. % Modified by Jacques Distler, 7/97
  29. % History: ver 1.0 9/96
  30. % ver 1.1 10/96 - added "collaboration" field
  31. % ver 1.2 7/97 - added a "\providecommand{\href}[2]{#2}"
  32. % to handle case where \href is not defined
  33. %
  34. % HyperTeX Wizardry:
  35. %
  36. % The following are equivalent:
  37. % archive = "hep-th"
  38. % eprint = "9605023"
  39. % and
  40. % eprint = "hep-th/9605023"
  41. % both produce
  42. % \href{http://arxiv.org/abs/hep-th/9605023}{{\tt hep-th/9605023}}
  43. % in the bibliographic output at the appropriate point. If you are using a
  44. % hypertex macropackage, like hyperref.sty, this will create a link to Los
  45. % Alamos.
  46. %
  47. % The bibtex output produced by SPIRES, while far from perfect, is pretty
  48. % suitable for use with this style. Indeed, this style was designed with
  49. % SPIRES in mind.
  50. ENTRY
  51. { address
  52. author
  53. booktitle
  54. chapter
  55. edition
  56. editor
  57. howpublished
  58. institution
  59. journal
  60. key
  61. month
  62. note
  63. number
  64. organization
  65. pages
  66. publisher
  67. school
  68. series
  69. title
  70. type
  71. volume
  72. year
  73. archive
  74. eprint
  75. report
  76. collaboration
  77. }
  78. {}
  79. { label }
  80. INTEGERS { output.state before.all mid.sentence after.quote after.sentence
  81. after.quoted.block after.block }
  82. FUNCTION {init.state.consts}
  83. { #0 'before.all :=
  84. #1 'mid.sentence :=
  85. #2 'after.quote :=
  86. #3 'after.sentence :=
  87. #4 'after.quoted.block :=
  88. #5 'after.block :=
  89. }
  90. STRINGS { s t }
  91. FUNCTION {output.nonnull}
  92. { 's :=
  93. output.state mid.sentence =
  94. { ", " * write$ }
  95. { output.state after.quote =
  96. { " " * write$ }
  97. { output.state after.block =
  98. { add.period$ write$
  99. newline$
  100. "\newblock " write$
  101. }
  102. { output.state before.all =
  103. 'write$
  104. { output.state after.quoted.block =
  105. { write$
  106. newline$
  107. "\newblock " write$
  108. }
  109. { add.period$ " " * write$ }
  110. if$
  111. }
  112. if$
  113. }
  114. if$
  115. }
  116. if$
  117. mid.sentence 'output.state :=
  118. }
  119. if$
  120. s
  121. }
  122. FUNCTION {output}
  123. { duplicate$ empty$
  124. 'pop$
  125. 'output.nonnull
  126. if$
  127. }
  128. FUNCTION {output.check}
  129. { 't :=
  130. duplicate$ empty$
  131. { pop$ "empty " t * " in " * cite$ * warning$ }
  132. 'output.nonnull
  133. if$
  134. }
  135. FUNCTION {output.bibitem}
  136. { newline$
  137. "\bibitem{" write$
  138. cite$ write$
  139. "}" write$
  140. newline$
  141. ""
  142. before.all 'output.state :=
  143. }
  144. FUNCTION {blank.sep}
  145. { after.quote 'output.state :=
  146. }
  147. FUNCTION {fin.entry}
  148. { output.state after.quoted.block =
  149. 'skip$
  150. 'add.period$
  151. if$
  152. write$
  153. newline$
  154. }
  155. FUNCTION {new.block}
  156. { output.state before.all =
  157. 'skip$
  158. { output.state after.quote =
  159. { after.quoted.block 'output.state := }
  160. { after.block 'output.state := }
  161. if$
  162. }
  163. if$
  164. }
  165. FUNCTION {new.sentence}
  166. { output.state after.block =
  167. 'skip$
  168. { output.state before.all =
  169. 'skip$
  170. { after.sentence 'output.state := }
  171. if$
  172. }
  173. if$
  174. }
  175. FUNCTION {not}
  176. { { #0 }
  177. { #1 }
  178. if$
  179. }
  180. FUNCTION {and}
  181. { 'skip$
  182. { pop$ #0 }
  183. if$
  184. }
  185. FUNCTION {or}
  186. { { pop$ #1 }
  187. 'skip$
  188. if$
  189. }
  190. FUNCTION {new.block.checka}
  191. { empty$
  192. 'skip$
  193. 'new.block
  194. if$
  195. }
  196. FUNCTION {new.block.checkb}
  197. { empty$
  198. swap$ empty$
  199. and
  200. 'skip$
  201. 'new.block
  202. if$
  203. }
  204. FUNCTION {new.sentence.checka}
  205. { empty$
  206. 'skip$
  207. 'new.sentence
  208. if$
  209. }
  210. FUNCTION {field.or.null}
  211. { duplicate$ empty$
  212. { pop$ "" }
  213. 'skip$
  214. if$
  215. }
  216. FUNCTION {emphasize}
  217. { duplicate$ empty$
  218. { pop$ "" }
  219. { "{\em " swap$ * "}" * }
  220. if$
  221. }
  222. INTEGERS { nameptr namesleft numnames }
  223. FUNCTION {format.names}
  224. { 's :=
  225. #1 'nameptr :=
  226. s num.names$ 'numnames :=
  227. numnames 'namesleft :=
  228. { namesleft #0 > }
  229. { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
  230. nameptr #1 >
  231. { namesleft #1 >
  232. { ", " * t * }
  233. { numnames #2 >
  234. { "," * }
  235. 'skip$
  236. if$
  237. t "others" =
  238. { " et~al." * }
  239. { " and " * t * }
  240. if$
  241. }
  242. if$
  243. }
  244. 't
  245. if$
  246. nameptr #1 + 'nameptr :=
  247. namesleft #1 - 'namesleft :=
  248. }
  249. while$
  250. }
  251. FUNCTION {format.authors}
  252. { author empty$
  253. { "" }
  254. { author format.names }
  255. if$
  256. }
  257. FUNCTION {format.eprint.newarXivid}
  258. { eprint #1 #6 substring$ "arXiv:" =
  259. {"\href{http://arxiv.org/abs/" eprint #7 #10 substring$ * "}" *
  260. "{{\tt " * eprint #7 #10 substring$ * "}}" *}
  261. {"\href{http://arxiv.org/abs/" eprint #1 #10 substring$ * "}" *
  262. "{{\tt arXiv:" * eprint #1 #10 substring$ * "}}" *}
  263. if$
  264. }
  265. FUNCTION {format.eprint.oldarXivid}
  266. { archive empty$
  267. {"\href{http://arxiv.org/abs/" eprint * "}" *
  268. "{{\tt " * eprint * "}}" *}
  269. {"\href{http://arxiv.org/abs/" archive * "/" * eprint * "}" *
  270. "{{\tt " * archive * "/" * eprint * "}}" *}
  271. if$
  272. }
  273. FUNCTION {format.eprint}
  274. { eprint empty$
  275. { ""}
  276. { eprint #1 #6 substring$ "arXiv:" =
  277. eprint #5 #1 substring$ "." =
  278. or
  279. { format.eprint.newarXivid }
  280. { format.eprint.oldarXivid }
  281. if$
  282. }
  283. if$
  284. }
  285. FUNCTION {format.eprint.paren}
  286. { eprint missing$ { "" } { eprint empty$ { "" } {"[" format.eprint * "]" *}
  287. if$
  288. }
  289. if$
  290. }
  291. FUNCTION {format.report}
  292. { report empty$
  293. { ""}
  294. { report}
  295. if$
  296. }
  297. FUNCTION {format.editors}
  298. { editor empty$
  299. { "" }
  300. { editor format.names
  301. editor num.names$ #1 >
  302. { ", eds." * }
  303. { ", ed." * }
  304. if$
  305. }
  306. if$
  307. }
  308. FUNCTION {format.title}
  309. { title empty$
  310. { "" }
  311. { "{\it " title "t" change.case$ * "}, " * }
  312. if$
  313. }
  314. FUNCTION {format.title.p}
  315. { title empty$
  316. { "" }
  317. { "``" title "t" change.case$ * ".''" * }
  318. if$
  319. }
  320. FUNCTION {n.dashify}
  321. { 't :=
  322. ""
  323. { t empty$ not }
  324. { t #1 #1 substring$ "-" =
  325. { t #1 #2 substring$ "--" = not
  326. { "--" *
  327. t #2 global.max$ substring$ 't :=
  328. }
  329. { { t #1 #1 substring$ "-" = }
  330. { "-" *
  331. t #2 global.max$ substring$ 't :=
  332. }
  333. while$
  334. }
  335. if$
  336. }
  337. { t #1 #1 substring$ *
  338. t #2 global.max$ substring$ 't :=
  339. }
  340. if$
  341. }
  342. while$
  343. }
  344. FUNCTION {format.date}
  345. { year empty$
  346. { month empty$
  347. { "" }
  348. { "there's a month but no year in " cite$ * warning$
  349. month
  350. }
  351. if$
  352. }
  353. { month empty$
  354. 'year
  355. { month ", " * year * }
  356. if$
  357. }
  358. if$
  359. }
  360. FUNCTION {format.date.paren}
  361. { year empty$
  362. { month empty$
  363. { "" }
  364. { "there's a month but no year in " cite$ * warning$
  365. month
  366. }
  367. if$
  368. }
  369. { month empty$
  370. {"(" year * ")" *}
  371. {"(" month * ", " * year * ")" *}
  372. if$
  373. }
  374. if$
  375. }
  376. FUNCTION {format.collaboration}
  377. { collaboration empty$
  378. { "" }
  379. { "{\bf " collaboration * "} " * "Collaboration" * }
  380. if$
  381. }
  382. FUNCTION {format.btitle}
  383. { title emphasize
  384. }
  385. FUNCTION {tie.or.space.connect}
  386. { duplicate$ text.length$ #3 <
  387. { "~" }
  388. { " " }
  389. if$
  390. swap$ * *
  391. }
  392. FUNCTION {either.or.check}
  393. { empty$
  394. 'pop$
  395. { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  396. if$
  397. }
  398. FUNCTION {format.bvolume}
  399. { volume empty$
  400. { "" }
  401. { "vol.~" volume *
  402. series empty$
  403. 'skip$
  404. { " of " * series emphasize * }
  405. if$
  406. "volume and number" number either.or.check
  407. }
  408. if$
  409. }
  410. FUNCTION {format.number.series}
  411. { volume empty$
  412. { number empty$
  413. { series field.or.null }
  414. { output.state mid.sentence =
  415. { "no.~" }
  416. { "No.~" }
  417. if$
  418. number *
  419. series empty$
  420. { "there's a number but no series in " cite$ * warning$ }
  421. { " in " * series * }
  422. if$
  423. }
  424. if$
  425. }
  426. { "" }
  427. if$
  428. }
  429. FUNCTION {format.edition}
  430. { edition empty$
  431. { "" }
  432. { edition "l" change.case$ "~ed." * }
  433. if$
  434. }
  435. INTEGERS { multiresult }
  436. FUNCTION {multi.page.check}
  437. { 't :=
  438. #0 'multiresult :=
  439. { multiresult not
  440. t empty$ not
  441. and
  442. }
  443. { t #1 #1 substring$
  444. duplicate$ "-" =
  445. swap$ duplicate$ "," =
  446. swap$ "+" =
  447. or or
  448. { #1 'multiresult := }
  449. { t #2 global.max$ substring$ 't := }
  450. if$
  451. }
  452. while$
  453. multiresult
  454. }
  455. FUNCTION {format.pages}
  456. { pages empty$
  457. { "" }
  458. { pages multi.page.check
  459. { "pp.~" pages n.dashify * }
  460. { "p.~" pages * }
  461. if$
  462. }
  463. if$
  464. }
  465. FUNCTION {format.pages.nopp}
  466. { pages empty$
  467. { "" }
  468. { pages multi.page.check
  469. { pages n.dashify }
  470. { pages }
  471. if$
  472. }
  473. if$
  474. }
  475. FUNCTION {format.volume}
  476. { volume empty$
  477. { "" }
  478. { "{\bf " volume * "}" * }
  479. if$
  480. }
  481. FUNCTION {format.number}
  482. { number empty$
  483. { "" }
  484. { "no.~" number * }
  485. if$
  486. }
  487. FUNCTION {format.chapter.pages}
  488. { chapter empty$
  489. 'format.pages
  490. { type empty$
  491. { "ch.~" chapter * }
  492. { type "l" change.case$ chapter tie.or.space.connect }
  493. if$
  494. pages empty$
  495. 'skip$
  496. { ", " * format.pages * }
  497. if$
  498. }
  499. if$
  500. }
  501. FUNCTION {format.in.ed.booktitle}
  502. { booktitle empty$
  503. { "" }
  504. { "in " booktitle emphasize *
  505. editor empty$
  506. 'skip$
  507. { " (" * format.editors * ")" * }
  508. if$
  509. }
  510. if$
  511. }
  512. FUNCTION {format.thesis.type}
  513. { type empty$
  514. 'skip$
  515. { pop$
  516. output.state after.block =
  517. { type "t" change.case$ }
  518. { type "l" change.case$ }
  519. if$
  520. }
  521. if$
  522. }
  523. FUNCTION {empty.misc.check}
  524. { author empty$ title empty$ howpublished empty$
  525. month empty$ year empty$ note empty$
  526. and and and and and
  527. { "all relevant fields are empty in " cite$ * warning$ }
  528. 'skip$
  529. if$
  530. }
  531. FUNCTION {format.tr.number}
  532. { type empty$
  533. { "Tech. Rep." }
  534. 'type
  535. if$
  536. number empty$
  537. { "l" change.case$ }
  538. { number tie.or.space.connect }
  539. if$
  540. }
  541. FUNCTION {format.paddress}
  542. { address empty$
  543. { "" }
  544. { "(" address * ")" * }
  545. if$
  546. }
  547. FUNCTION {format.article.crossref}
  548. { key empty$
  549. { journal empty$
  550. { "need key or journal for " cite$ * " to crossref " * crossref *
  551. warning$
  552. ""
  553. }
  554. { "in {\em " journal * "\/}" * }
  555. if$
  556. }
  557. { "in " key * }
  558. if$
  559. " \cite{" * crossref * "}" *
  560. }
  561. FUNCTION {format.crossref.editor}
  562. { editor #1 "{vv~}{ll}" format.name$
  563. editor num.names$ duplicate$
  564. #2 >
  565. { pop$ " et~al." * }
  566. { #2 <
  567. 'skip$
  568. { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  569. { " et~al." * }
  570. { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  571. if$
  572. }
  573. if$
  574. }
  575. if$
  576. }
  577. FUNCTION {format.book.crossref}
  578. { volume empty$
  579. { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  580. "In "
  581. }
  582. { "Vol.~" volume *
  583. " of " *
  584. }
  585. if$
  586. editor empty$
  587. editor field.or.null author field.or.null =
  588. or
  589. { key empty$
  590. { series empty$
  591. { "need editor, key, or series for " cite$ * " to crossref " *
  592. crossref * warning$
  593. "" *
  594. }
  595. { "{\em " * series * "\/}" * }
  596. if$
  597. }
  598. { key * }
  599. if$
  600. }
  601. { format.crossref.editor * }
  602. if$
  603. " \cite{" * crossref * "}" *
  604. }
  605. FUNCTION {format.incoll.inproc.crossref}
  606. { editor empty$
  607. editor field.or.null author field.or.null =
  608. or
  609. { key empty$
  610. { booktitle empty$
  611. { "need editor, key, or booktitle for " cite$ * " to crossref " *
  612. crossref * warning$
  613. ""
  614. }
  615. { "in {\em " booktitle * "\/}" * }
  616. if$
  617. }
  618. { "in " key * }
  619. if$
  620. }
  621. { "in " format.crossref.editor * }
  622. if$
  623. " \cite{" * crossref * "}" *
  624. }
  625. FUNCTION {article}
  626. { output.bibitem
  627. format.collaboration output
  628. format.authors "author" output.check
  629. format.title "title" output.check
  630. blank.sep
  631. crossref missing$
  632. { journal missing$
  633. { format.eprint output }
  634. { journal empty$ { format.eprint output } {
  635. journal emphasize "journal" output.check
  636. blank.sep
  637. format.volume output
  638. blank.sep
  639. format.date.paren "year" output.check
  640. month empty$ { format.number output }
  641. 'skip$ if$
  642. blank.sep
  643. format.pages.nopp output }
  644. if$
  645. }
  646. if$
  647. report missing$
  648. { journal empty$ {} { format.eprint.paren output} if$ }
  649. {blank.sep format.report output format.eprint.paren output}
  650. if$
  651. }
  652. { format.article.crossref output.nonnull
  653. format.pages output
  654. format.eprint.paren output
  655. }
  656. if$
  657. new.sentence
  658. note output
  659. fin.entry
  660. }
  661. FUNCTION {book}
  662. { output.bibitem
  663. format.collaboration output
  664. author empty$
  665. { format.editors "author and editor" output.check }
  666. { format.authors output.nonnull
  667. crossref missing$
  668. { "author and editor" editor either.or.check }
  669. 'skip$
  670. if$
  671. }
  672. if$
  673. format.btitle "title" output.check
  674. crossref missing$
  675. { format.bvolume output
  676. new.block
  677. format.number.series output
  678. new.sentence
  679. publisher "publisher" output.check
  680. address output
  681. }
  682. { new.block
  683. format.book.crossref output.nonnull
  684. }
  685. if$
  686. format.edition output
  687. format.date "year" output.check
  688. new.block
  689. note output
  690. fin.entry
  691. }
  692. FUNCTION {booklet}
  693. { output.bibitem
  694. format.collaboration output
  695. format.authors output
  696. title empty$
  697. { "empty title in " cite$ * warning$
  698. howpublished new.sentence.checka
  699. }
  700. { howpublished empty$ not
  701. address empty$ month empty$ year empty$ and and
  702. or
  703. { format.title.p output.nonnull }
  704. { format.title output.nonnull }
  705. if$
  706. blank.sep
  707. }
  708. if$
  709. howpublished output
  710. address output
  711. format.date output
  712. new.block
  713. note output
  714. fin.entry
  715. }
  716. FUNCTION {inbook}
  717. { output.bibitem
  718. format.collaboration output
  719. author empty$
  720. { format.editors "author and editor" output.check }
  721. { format.authors output.nonnull
  722. crossref missing$
  723. { "author and editor" editor either.or.check }
  724. 'skip$
  725. if$
  726. }
  727. if$
  728. format.btitle "title" output.check
  729. crossref missing$
  730. { format.bvolume output
  731. format.chapter.pages "chapter and pages" output.check
  732. new.block
  733. format.number.series output
  734. new.block
  735. publisher "publisher" output.check
  736. address output
  737. }
  738. { format.chapter.pages "chapter and pages" output.check
  739. new.block
  740. format.book.crossref output.nonnull
  741. }
  742. if$
  743. format.edition output
  744. format.date "year" output.check
  745. new.block
  746. format.eprint output
  747. new.block
  748. note output
  749. fin.entry
  750. }
  751. FUNCTION {incollection}
  752. { output.bibitem
  753. format.collaboration output
  754. format.authors "author" output.check
  755. format.title "title" output.check
  756. blank.sep
  757. crossref missing$
  758. { format.in.ed.booktitle "booktitle" output.check
  759. format.bvolume output
  760. format.number.series output
  761. format.chapter.pages output
  762. new.block
  763. publisher "publisher" output.check
  764. address output
  765. format.edition output
  766. format.date "year" output.check
  767. }
  768. { format.incoll.inproc.crossref output.nonnull
  769. format.chapter.pages output
  770. }
  771. if$
  772. new.block
  773. format.eprint output
  774. new.block
  775. note output
  776. fin.entry
  777. }
  778. FUNCTION {inproceedings}
  779. { output.bibitem
  780. format.collaboration output
  781. format.authors "author" output.check
  782. format.title "title" output.check
  783. blank.sep
  784. crossref missing$
  785. { format.in.ed.booktitle "booktitle" output.check
  786. format.bvolume output
  787. format.number.series output
  788. format.paddress output
  789. format.pages output
  790. organization output
  791. publisher output
  792. format.date "year" output.check
  793. }
  794. { format.incoll.inproc.crossref output.nonnull
  795. format.pages output
  796. }
  797. if$
  798. new.block
  799. format.eprint output
  800. new.block
  801. note output
  802. fin.entry
  803. }
  804. FUNCTION {conference} { inproceedings }
  805. FUNCTION {manual}
  806. { output.bibitem
  807. format.collaboration output
  808. author empty$
  809. { organization empty$
  810. 'skip$
  811. { organization output.nonnull
  812. address output
  813. }
  814. if$
  815. }
  816. { format.authors output.nonnull }
  817. if$
  818. format.btitle "title" output.check
  819. author empty$
  820. { organization empty$
  821. { address new.block.checka
  822. address output
  823. }
  824. 'skip$
  825. if$
  826. }
  827. { organization address new.block.checkb
  828. organization output
  829. address output
  830. }
  831. if$
  832. format.edition output
  833. format.date output
  834. new.block
  835. note output
  836. fin.entry
  837. }
  838. FUNCTION {mastersthesis}
  839. { output.bibitem
  840. format.authors "author" output.check
  841. format.title "title" output.check
  842. blank.sep
  843. "Master's thesis" format.thesis.type output.nonnull
  844. school "school" output.check
  845. address output
  846. format.date "year" output.check
  847. new.block
  848. note output
  849. fin.entry
  850. }
  851. FUNCTION {misc}
  852. { output.bibitem
  853. format.collaboration output
  854. format.authors output
  855. title empty$
  856. { howpublished new.sentence.checka }
  857. { howpublished empty$ not
  858. month empty$ year empty$ and
  859. or
  860. { format.title.p output.nonnull }
  861. { format.title output.nonnull }
  862. if$
  863. blank.sep
  864. }
  865. if$
  866. howpublished output
  867. format.date output
  868. new.block
  869. note output
  870. fin.entry
  871. empty.misc.check
  872. }
  873. FUNCTION {phdthesis}
  874. { output.bibitem
  875. format.authors "author" output.check
  876. format.btitle "title" output.check
  877. new.block
  878. "PhD thesis" format.thesis.type output.nonnull
  879. school "school" output.check
  880. address output
  881. format.date "year" output.check
  882. new.block
  883. format.eprint output
  884. new.block
  885. note output
  886. fin.entry
  887. }
  888. FUNCTION {proceedings}
  889. { output.bibitem
  890. editor empty$
  891. { organization output }
  892. { format.editors output.nonnull }
  893. if$
  894. format.btitle "title" output.check
  895. format.bvolume output
  896. format.number.series output
  897. format.paddress output
  898. editor empty$
  899. 'skip$
  900. { organization output }
  901. if$
  902. publisher output
  903. format.date "year" output.check
  904. new.block
  905. note output
  906. fin.entry
  907. }
  908. FUNCTION {techreport}
  909. { output.bibitem
  910. format.collaboration output
  911. format.authors "author" output.check
  912. format.title "title" output.check
  913. blank.sep
  914. format.tr.number output.nonnull
  915. institution "institution" output.check
  916. address output
  917. format.date "year" output.check
  918. new.block
  919. note output
  920. fin.entry
  921. }
  922. FUNCTION {unpublished}
  923. { output.bibitem
  924. format.collaboration output
  925. format.authors "author" output.check
  926. format.title.p "title" output.check
  927. blank.sep
  928. note "note" output.check
  929. format.date output
  930. fin.entry
  931. }
  932. FUNCTION {default.type} { misc }
  933. MACRO {jan} {"Jan."}
  934. MACRO {feb} {"Feb."}
  935. MACRO {mar} {"Mar."}
  936. MACRO {apr} {"Apr."}
  937. MACRO {may} {"May"}
  938. MACRO {jun} {"June"}
  939. MACRO {jul} {"July"}
  940. MACRO {aug} {"Aug."}
  941. MACRO {sep} {"Sept."}
  942. MACRO {oct} {"Oct."}
  943. MACRO {nov} {"Nov."}
  944. MACRO {dec} {"Dec."}
  945. MACRO {nup} {"Nucl. Phys."}
  946. MACRO {cmp} {"Comm. Math. Phys."}
  947. MACRO {prl} {"Phys. Rev. Lett."}
  948. MACRO {pl} {"Phys. Lett."}
  949. MACRO {rmp} {"Rev. Mod. Phys."}
  950. MACRO {ijmp} {"Int. Jour. Mod. Phys."}
  951. MACRO {mpl} {"Mod. Phys. Lett."}
  952. MACRO {pr} {"Phys. Rev."}
  953. READ
  954. STRINGS { longest.label }
  955. INTEGERS { number.label longest.label.width }
  956. FUNCTION {initialize.longest.label}
  957. { "" 'longest.label :=
  958. #1 'number.label :=
  959. #0 'longest.label.width :=
  960. }
  961. FUNCTION {longest.label.pass}
  962. { number.label int.to.str$ 'label :=
  963. number.label #1 + 'number.label :=
  964. label width$ longest.label.width >
  965. { label 'longest.label :=
  966. label width$ 'longest.label.width :=
  967. }
  968. 'skip$
  969. if$
  970. }
  971. EXECUTE {initialize.longest.label}
  972. ITERATE {longest.label.pass}
  973. FUNCTION {begin.bib}
  974. { preamble$ empty$
  975. 'skip$
  976. { preamble$ write$ newline$ }
  977. if$
  978. "\providecommand{\href}[2]{#2}"
  979. "\begingroup\raggedright\begin{thebibliography}{" * longest.label *
  980. "}" * write$ newline$ }
  981. EXECUTE {begin.bib}
  982. EXECUTE {init.state.consts}
  983. ITERATE {call.type$}
  984. FUNCTION {end.bib}
  985. { newline$
  986. "\end{thebibliography}\endgroup" write$ newline$
  987. }
  988. EXECUTE {end.bib}