X-Git-Url: http://git.tpope.net/?p=latex-mlastyle.git;a=blobdiff_plain;f=mlastyle.bst;h=e2b446ac786928c92f6416b22aec299feea2ed74;hp=f74f8fd7f2c5931097fb5d5d23c6b0e1a72f1225;hb=5fcaf813f2c9fa5303cf9e5e90b5ec0a8126be82;hpb=3c18124ab4dde0a032ba1fabb4721b8cf6eb6033 diff --git a/mlastyle.bst b/mlastyle.bst index f74f8fd..e2b446a 100644 --- a/mlastyle.bst +++ b/mlastyle.bst @@ -1,4 +1,5 @@ -% BibTeX standard bibliography style `plain' +% BibTeX bibliography style `mlastyle' +% Based on BibTeX standard bibliography style `plain' % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. % Copyright (C) 1985, all rights reserved. % Copying of this file is authorized only if either @@ -40,7 +41,7 @@ ENTRY { author.duplicate author.shared } { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block after.title author.different author.last author.flast } +INTEGERS { output.state before.all mid.sentence after.sentence after.block after.title author.different author.last author.flast citealp.used url.used } % Rearranged such that true values require capital letters FUNCTION {init.consts} @@ -54,6 +55,9 @@ FUNCTION {init.consts} #1 'author.last := #2 'author.flast := %#3 'author.firstlast := + + #0 'citealp.used := + #0 'url.used := } STRINGS { s t u } % Added u @@ -213,7 +217,7 @@ FUNCTION {field.or.null} FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } - { "{\em " swap$ * "}" * } + { "\emph{" swap$ * "}" * } if$ } @@ -616,7 +620,7 @@ FUNCTION {format.url} { "There's a url but no accessdate in " cite$ * warning$ "" } { accessdate " " * } if$ - "$<$" * url * "$>$" * + "$<$\url{" * url * "}$>$" * urlpath empty$ 'skip$ { do.period " Path: " * urlpath * } @@ -637,7 +641,7 @@ FUNCTION {format.article.crossref} %} %{ "In " key * } %if$ - pages empty$ { " \citeN" } { " \citeN[" format.chapter.pages * "]" * } if$ + pages empty$ { "\citealp" } { "\citealp[" format.chapter.pages * "]" * } if$ "{" * crossref * "}" * } @@ -683,8 +687,7 @@ FUNCTION {format.book.crossref} % } % { format.crossref.editor * } % if$ - %" \citeN{" * crossref * "}" * - pages empty$ { " \citeN" } { " \citeN[" format.chapter.pages * "]" * } if$ + pages empty$ { "\citealp" } { "\citealp[" format.chapter.pages * "]" * } if$ "{" * crossref * "}" * } @@ -706,8 +709,7 @@ FUNCTION {format.incoll.inproc.crossref} % } % { "In " format.crossref.editor * } % if$ -% " \citeN{" * crossref * "}" * - pages empty$ { " \citeN" } { " \citeN[" format.chapter.pages * "]" * } if$ + pages empty$ { "\citealp" } { "\citealp[" format.chapter.pages * "]" * } if$ "{" * crossref * "}" * } @@ -760,21 +762,24 @@ FUNCTION {cite.label} { author } if$ duplicate$ empty$ - { pop$ cite.title } - { + { cite.title * "( \ \ \ \ \unskip\unskip\unskip\unskip\unskip \unskip)" * } + { duplicate$ author.shared author.different = - { "{vv~}{ll}" format.names.custom } + { "{vv~}{ll}" format.names.custom 's := } { author.shared author.last = - { "{f.~}{vv~}{ll}{, jj}" format.names.custom } + { "{f.~}{vv~}{ll}{, jj}" format.names.custom 's := } { author.shared author.flast = - { "{ff~}{vv~}{ll}{, jj}" format.names.custom } - { "{vv~}{ll}" format.names.custom ", " * cite.title * } + { "{ff~}{vv~}{ll}{, jj}" format.names.custom 's := } + { "{vv~}{ll}" format.names.custom ", " * cite.title * 's := "WTF" warning$ } if$ } if$ } if$ - author.duplicate { ", " * cite.title * }{} if$ + s + "( \ \ \ \ \unskip\unskip\unskip\unskip\unskip " * + author.duplicate { cite.title * }{ "\unskip" * } if$ + ")" * swap$ "{ff~}{vv~}{ll}{, jj}" format.names.custom * } if$ %} @@ -828,9 +833,9 @@ FUNCTION {book} if$ new.block format.btitle "title" output.check - new.sentence + new.block crossref missing$ - { author empty$ 'skip$ { format.editors.mid output new.sentence } if$ + { author empty$ 'skip$ { format.editors.mid output new.block } if$ format.edition output new.sentence format.bvolume.or.num.series output @@ -874,7 +879,7 @@ FUNCTION {inbook} format.btitle "title" output.check new.block crossref missing$ - { author empty$ 'skip$ { format.editors.mid output new.sentence } if$ + { author empty$ 'skip$ { format.editors.mid output new.block } if$ format.edition output new.sentence format.bvolume.or.num.series output @@ -944,7 +949,7 @@ FUNCTION {inproceedings} booktitle "booktitle" output.check new.sentence format.editors.mid output - new.sentence + new.block format.edition output new.sentence format.bvolume.or.num.series output @@ -996,7 +1001,7 @@ FUNCTION {manual} if$ new.block format.btitle "title" output.check - new.sentence + new.block format.edition output new.sentence author empty$ @@ -1364,6 +1369,8 @@ FUNCTION {init.vars} FUNCTION {forward.author.dup.check} { + url empty$ 'skip$ { url.used #1 + 'url.used := } if$ + crossref empty$ 'skip$ { citealp.used #1 + 'citealp.used := } if$ author empty$ { editor empty$ { organization field.or.null 'a := }{ editor 'a :=} if$} { author 'a := } @@ -1456,12 +1463,22 @@ REVERSE {reverse.author} %ITERATE {longest.label.pass} FUNCTION {begin.bib} -{ preamble$ empty$ +{ + citealp.used + { "\expandafter\ifx\csname citealp\endcsname\relax\let\citealp\cite\fi" + write$ newline$ } + 'skip$ + if$ + url.used + { "\expandafter\ifx\csname citealp\endcsname\relax\url\let\url\relax\fi" + write$ newline$ } + 'skip$ + if$ + preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{\rule{.5in}{0pt}}" write$ newline$ - "\ifx\undefined\citeN\let\citeN\cite\fi" write$ newline$ } EXECUTE {begin.bib}