129

Is there a convention for how to enter publications that are "in preparation" or "submitted to Some Journal" into a BibTeX database?

Mico
  • 506,678
Tobin Fricke
  • 2,364
  • 6
    Usually the notes field is used for this. – Daniel Oct 12 '11 at 19:41
  • 18
    With biblatex, you may also add the pubstate field to the entries of your .bib database. See http://tex.stackexchange.com/questions/25088/localize-terms-in-bibtex-biblatex-entries/25091#25091. – lockstep Oct 12 '11 at 22:31
  • I used biblatex with \citeuathor as described in one of the answers in https://tex.stackexchange.com/questions/38808/truncation-of-year-field-in-author-year-citations-using-apalike-bibliography – Virgo May 05 '20 at 23:28

2 Answers2

87

One can enter non-numeric information -- such as "in press" and "forthcoming" -- directly in the year field of a bibliographic entry.

The only time that having non-numeric information in the year field may cause trouble is if you (a) have several "in-press" pieces by the same author(s) and (b) need to ensure that the entries are sorted in a certain order. Fortunately, an easy fix for this is suggested in the BibTeX manual:

  • First, set up a command named \noop (short for "no operation"): At the top of your .bib file, you should enter

      @preamble{ " \newcommand{\noop}[1]{} " } % a do-nothing command that serves a purpose
    
  • Later on in the bib file, you'd augment the year fields of the "in-press" entries as follows:

      @article{smith:2011,
        author  = "John Smith", 
        year    = 2011,
        journal = "Unorganized Scholarly Impressions",
        ... }
      @article{smith:inpress-a,
        author  = "John Smith", 
        year    = "\noop{3001}in press",
        journal = "Journal of Nothingness",
        ... }
      @article{smith:inpress-b,
         author  = "John Smith", 
         year    = "\noop{3002}forthcoming",
         journal = "Review of Random Thoughts",
         ... }
    
  • With this setup, and assuming you're employing a bibliography style that sorts entries by year, "smith:2011" will always be listed before "smith:inpress-a" which, in turn, will always be listed before "smith:inpress-b".

  • Note that \noop{<anything>} generates no LaTeX output. However, it is still useful, because when BibTeX encounters it while building the bibliography file (which will have the file name extension .bbl), it will "see" the contents of the two year fields as 3001in press and 3002forthcoming, respectively, and thus perform its sorting job correctly.

  • Observe that I recommend using fake years -- such as 3001, 3002, and so on -- to make clear to all readers of the .bib file (including yourself!) that these aren't real publication dates but are being used solely for the purpose of ensuring a correct sorting order.

The natbib citation command \citet{smith:inpress-a,smith:inpress:b} will generate

Smith (in press, forthcoming)

This may well be confusing to your readers. To avoid this problem -- and assuming, for the sake of this example, that both pieces will be published later in 2012 -- you'll have to change the two year fields to something such as

year = "\noop{3001}in press 2012a"

and

year = "\noop{3002}in press 2012b"

respectively. With these modifications in place, the command \citet{smith:inpress-a,smith:inpress:b} will generate the more readily parsable output

Smith (in press 2012a, in press 2012b)

Later on, once the pieces are published, you can update the .bib file and replace "\noop{3001}in press 2012a" with the actual publication year -- which may turn out to be 2013. (Obviously, you'll want to use that opportunity to also enter the actual values of the entry's other fields, such as volume, issue, pages, etc.)


Addendum: Note that the \noop command can also be used to impose a sorting order on pieces that have already been published. Suppose that you have three entries published in 2005 by the particularly prolific "John Miller", with keys miller:2005a, miller:2005b, and miller:2005c; let's assume the keys were chosen in this manner because you happen to know that the 2005a piece was published in February, the 2005b piece in June, and the 2005c piece in October 2005. Suppose further that all three entries currently contain the field year = 2005. If two or three publications are to be included in a bibliography that's sorted by author and year, there's unfortunately no guarantee that BibTeX will list these entries according to the values of their keys. If it matters to you that the miller:2005a, miller:2005b, and miller:2005c entries will always be sorted and thus listed in this order, you could use the \noop command and modify the entries' year fields as follows:

@article{miller:2005a,
   author = "John Miller",
   year   = "2005{\noop{a}}",
   ...
}
@article{miller:2005b,
   author = "John Miller",
   year   = "2005{\noop{b}}",
   ...
}
@article{miller:2005c,
   author = "John Miller",
   year   = "2005{\noop{c}}",
   ...
}

That way, if for a given publication you need to include the pieces with keys 2005b and 2005c, BibTeX will indeed sort them in the desired order. And, depending on the bib style file in use, BibTeX will use the augmented year labels 2005a and 2005b when the .bbl file is created.

Mico
  • 506,678
  • 1
    Instead of calling the command \noop, would it make sense to call it \sortorder - so that it's clear what's going on? Or would there be some other undesirable consequences from this? – jhabbott May 22 '16 at 02:27
  • @jhabbott - Thanks. I can't think of any undesirable consequences of naming the macro \sortorder. A personal anecdote: in the close to five years that have passed since I posted this answer, I've actually switched from \noop to \noopsort in my own work (i.e., my own working papers) -- precisely to provide a clue as to the macro's purpose. I'm pretty sure that \noopsort is also the name used in some of the original BibTeX documentation. – Mico May 22 '16 at 05:26
  • 2
    With pdflatex I get only the last four characters of the Year field in the citation. E.g. a field like year = "\noop{3001}in press", produces a citation like (de Sousa, ress). – Luís de Sousa Feb 13 '17 at 13:29
  • @LuísdeSousa - The way the year field is rendered is governed by the bibliography style. Which bibliography style does your document employ? – Mico Feb 13 '17 at 13:33
  • 2
    I am using apalike. – Luís de Sousa Feb 13 '17 at 13:48
  • 1
    @LuísdeSousa - Indeed, apalike is a bibliography style that truncates the year field. :-( I suggest you proceed as follows: (i) Find the file apalike.bst in your TeX distribution, make a copy of this file, and call the copy, say, myapalike.bst. (ii) Open the file myapalike.bst in a text editor, go to line 909, and delete the string #-1 #4 substring$. (iii) Save the file myapalike.bst in the directory where your main tex file is located, change the argument of \bibliographystyle from apalike to myapalike, and do a full recompile cycle: latex, bibtex, and latex twice more. – Mico Feb 13 '17 at 14:39
  • @Mico: after deleting that line, the citations are transformed into random characters, e.g. (f) instead of (de Sousa, 2016). Meanwhile I was able to obtain the full in press string using the NatBib package. – Luís de Sousa Feb 13 '17 at 16:07
  • @LuísdeSousa - Just for the record: I did not suggest you delete an entire line. Instead, I suggested you delete a certain string -- only about half of that line. – Mico Feb 13 '17 at 16:46
  • @LuísdeSousa - How did you do it in natbib? – Adam_G Jun 06 '17 at 22:44
  • How to implement all this when working with JabRef instead? If I fill up the year as said above, it's not working! – Rebel Mar 28 '20 at 23:21
  • @Ash - No idea, as I don’t use JabRef. – Mico Mar 29 '20 at 04:00
  • 1
    @Mico suggestion on deleting the #-1 #4 substring$ string worked for me. But then had to stop using \noop as it was algo being displayed as written in the citation. – b-fg Jul 16 '20 at 11:41
  • @b-fg - Which bibliography style do you employ? apalike? – Mico Jul 16 '20 at 11:46
  • Yes, apalike. – b-fg Jul 16 '20 at 11:48
  • @b-fg - Not sure what to tell you, except maybe to double-check that the \noop directives are themselves encased in curly braces. E.g., "3001{\noop{a}}" should work, whereas "3001\noop{a}" probably won't. – Mico Jul 16 '20 at 11:51
  • Weirdly, not using \noop at all works too. Currently have: year = {2020, accepted}, and it's displayed correctly in the citation and references. Probably something to do with apalike. – b-fg Jul 16 '20 at 11:54
  • 2
    @b-fg - There are two separate things going on here. The first is that by modifying apalike.bst to remove #-1 #4 substring$, you give yourself the opportunity to display the citation call-out and the formatted bibliography entry with a year field as 2020, accepted. That's independent of the second thing, which is that by affixing {\noop{a}} etc to the (plain or augmented) year fields, you can influence the way these entries are sorted. – Mico Jul 16 '20 at 12:18
46

If you are using a traditional BibTeX style file, use the @unpublished type and use the note field to explain the status. If you are using biblatex, then you can use the @article type and add the information to the note: biblatex tends to be more forgiving in what is 'required' for an article.

tobiasBora
  • 8,684
Joseph Wright
  • 259,911
  • 34
  • 706
  • 1,036
  • I could be wrong, but doesn't the notes field show up in the output with the @article type as well? – Reid Oct 13 '11 at 14:10
  • @ReidPriedhorsky It does, but some BibTeX styles issue a warning if you have no year, volume or pages for an @article entry. Some may give very odd formatting as a result, so I'd avoid that unless using biblatex. In the later case, there are not really any 'required' fields in the same way as traditional BibTeX, so the problem is avoided. – Joseph Wright Oct 13 '11 at 14:53
  • 15
    In my version [BibTeX 0.99c (TeX Live 2009/Debian)], this works if I use the type @article and the field name note, rather than notes. – SabreWolfy Aug 07 '12 at 11:25
  • 1
    I confirm that note should be used instead of notes also for the @unpusblished format (I took the liberty to edit the post since it has not been fixed in 10 years). – tobiasBora Apr 08 '21 at 13:58