One can enter non-numeric information -- such as "in press" and "forthcoming" -- directly in the year field of a bibliographic entry.
The only time 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 issue is explained 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 in the process of building the bibliography file (with filename 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 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 might be confusing. 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, the command \citet{smith:inpress-a,smith:inpress:b} will generate the more readily parsable output Smith (in press 2012a, in press 2012b).
Later, 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 by a "John Miller" in 2005, with keys miller:2005a, miller:2005b, and miller:2005c. Suppose further that all three entries currently contain the field year = 2005. If all three publications are to be shown 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. To ensure that the miller:2005a, miller:2005b, and miller:2005c entries are indeed listed in this order, you could use the \noop command in setting up their year fields:
@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}}",
...
}
notesfield is used for this. – Daniel Oct 12 '11 at 19:41biblatex, you may also add thepubstatefield to the entries of your.bibdatabase. See tex.stackexchange.com/questions/25088/…. – lockstep Oct 12 '11 at 22:31