Fixed natbib bug
[latex-mlastyle.git] / mlastyle.bst
index f705a3204b04410f7726e8697ddb54c1eab3b85f..e2b446ac786928c92f6416b22aec299feea2ed74 100644 (file)
@@ -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 citen.used url.used }
+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}
@@ -55,7 +56,7 @@ FUNCTION {init.consts}
   #2 'author.flast :=
   %#3 'author.firstlast :=
 
-  #0 'citen.used :=
+  #0 'citealp.used :=
   #0 'url.used :=
 }
 
@@ -216,7 +217,7 @@ FUNCTION {field.or.null}
 FUNCTION {emphasize}
 { duplicate$ empty$
     { pop$ "" }
-    { "{\em " swap$ * "}" * }
+    { "\emph{" swap$ * "}" * }
   if$
 }
 
@@ -620,7 +621,6 @@ FUNCTION {format.url}
        { accessdate " " * }
       if$
       "$<$\url{" * url * "}$>$" *
-      url.used #1 + 'url.used :=
       urlpath empty$
        'skip$
        { do.period " Path: " * urlpath * }
@@ -641,9 +641,8 @@ FUNCTION {format.article.crossref}
     %}
     %{ "In " key * }
   %if$
-  pages empty$ { " \citeN" } { " \citeN[" format.chapter.pages * "]" * } if$
+  pages empty$ { "\citealp" } { "\citealp[" format.chapter.pages * "]" * } if$
   "{" * crossref * "}" *
-  citen.used #1 + 'citen.used :=
 }
 
 FUNCTION {format.crossref.editor}
@@ -688,9 +687,8 @@ FUNCTION {format.book.crossref}
 %    }
 %    { format.crossref.editor * }
 %  if$
-  pages empty$ { " \citeN" } { " \citeN[" format.chapter.pages * "]" * } if$
+  pages empty$ { "\citealp" } { "\citealp[" format.chapter.pages * "]" * } if$
   "{" * crossref * "}" *
-  citen.used #1 + 'citen.used :=
 }
 
 FUNCTION {format.incoll.inproc.crossref}
@@ -711,9 +709,8 @@ FUNCTION {format.incoll.inproc.crossref}
 %    }
 %    { "In " format.crossref.editor * }
 %  if$
-  pages empty$ { " \citeN" } { " \citeN[" format.chapter.pages * "]" * } if$
+  pages empty$ { "\citealp" } { "\citealp[" format.chapter.pages * "]" * } if$
   "{" * crossref * "}" *
-  citen.used #1 + 'citen.used :=
 }
 
 FUNCTION {cite.title}
@@ -765,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$
       %}
@@ -833,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
@@ -879,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
@@ -949,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
@@ -1001,7 +1001,7 @@ FUNCTION {manual}
   if$
   new.block
   format.btitle "title" output.check
-  new.sentence
+  new.block
   format.edition output
   new.sentence
   author empty$
@@ -1369,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 := }
@@ -1462,12 +1464,14 @@ REVERSE {reverse.author}
 
 FUNCTION {begin.bib}
 {
-  citen.used
-    { "\ifx\undefined\citeN\let\citeN\cite\fi" write$ newline$ }
+  citealp.used
+    { "\expandafter\ifx\csname citealp\endcsname\relax\let\citealp\cite\fi"
+      write$ newline$ }
     'skip$
   if$
   url.used
-    { "\ifx\undefined\url\let\url\relax\fi" write$ newline$ }
+    { "\expandafter\ifx\csname citealp\endcsname\relax\url\let\url\relax\fi"
+      write$ newline$ }
     'skip$
   if$
   preamble$ empty$