Is there a convention for how to enter publications that are "in preparation" or "submitted to Some Journal" into a BibTeX database?
2 Answers
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 purposeLater 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 as3001in pressand3002forthcoming, 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.bibfile (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.
- 506,678
-
1Instead 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\noopto\noopsortin 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\noopsortis also the name used in some of the original BibTeX documentation. – Mico May 22 '16 at 05:26 -
2With
pdflatexI get only the last four characters of theYearfield in the citation. E.g. a field likeyear = "\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
-
1@LuísdeSousa - Indeed,
apalikeis a bibliography style that truncates theyearfield. :-( I suggest you proceed as follows: (i) Find the fileapalike.bstin your TeX distribution, make a copy of this file, and call the copy, say,myapalike.bst. (ii) Open the filemyapalike.bstin a text editor, go to line 909, and delete the string#-1 #4 substring$. (iii) Save the filemyapalike.bstin the directory where your main tex file is located, change the argument of\bibliographystylefromapaliketomyapalike, 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
-
-
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
-
-
1@Mico suggestion on deleting the
#-1 #4 substring$string worked for me. But then had to stop using\noopas it was algo being displayed as written in the citation. – b-fg Jul 16 '20 at 11:41 -
-
-
@b-fg - Not sure what to tell you, except maybe to double-check that the
\noopdirectives 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
\noopat all works too. Currently have:year = {2020, accepted},and it's displayed correctly in the citation and references. Probably something to do withapalike. – 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.bstto remove#-1 #4 substring$, you give yourself the opportunity to display the citation call-out and the formatted bibliography entry with ayearfield as2020, accepted. That's independent of the second thing, which is that by affixing{\noop{a}}etc to the (plain or augmented)yearfields, you can influence the way these entries are sorted. – Mico Jul 16 '20 at 12:18
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.
- 8,684
- 259,911
- 34
- 706
- 1,036
-
I could be wrong, but doesn't the
notesfield show up in the output with the@articletype 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
@articleentry. Some may give very odd formatting as a result, so I'd avoid that unless usingbiblatex. 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 -
15In my version [BibTeX 0.99c (TeX Live 2009/Debian)], this works if I use the type
@articleand the field namenote, rather thannotes. – SabreWolfy Aug 07 '12 at 11:25 -
1I confirm that
noteshould be used instead ofnotesalso for the@unpusblishedformat (I took the liberty to edit the post since it has not been fixed in 10 years). – tobiasBora Apr 08 '21 at 13:58
notesfield is used for this. – Daniel Oct 12 '11 at 19:41biblatex, you may also add thepubstatefield to the entries of your.bibdatabase. See http://tex.stackexchange.com/questions/25088/localize-terms-in-bibtex-biblatex-entries/25091#25091. – lockstep Oct 12 '11 at 22:31