Creating a unique citation key for each paper I add to my reference manager is something that should be taken of automatically but with me as a user being able to give instructions to the automation (any existing fields can be used during generation).Of all the citation key management approaches I have tried, I find this the best way for me: Generate citation keys from JabRef patterns.BBT generates citation keys that take into account other existing keys in your library in a deterministic way, regardless of what part of your library you export, or the order in which you do it. Stable citation keys, without key clashes.You can’t see the citation keys until you export them.The keys are always auto-generated, so if you correct a typo in the author name or title, the key will change.If a non-unique key is generated, which one gets postfixed with a distinguishing character is essentially non-deterministic.See the following page for details: BBT Citation Keys. The Zotero plugin Better Bib(La)TeX has great support for generating user friendly, unique citekeys. I’m using Zotero at the moment, but looking into Paperpile and Docear at the moment.
That won’t make it easy to share a folder with collaborators and it will break as soon as you add integration with Overleaf! I think the lesson here is that there are never any easy answers with end-user software
Probably the easiest thing for me would be to write my own citation key translator and run it every time I download a. Not sure if that is useful to you or not, but it makes sense from my perspective as a user.Īs it happens I’ve come up against this problem myself, I’ve just started using Paperpile, right in the middle of writing a paper, so I now can’t use my old LaTeX citations with the paper I’m writing.
This might mitigate some of those pesky emails. Each suggested key should have a short sentence next to it that explains how the key was chosen, so you can say “Smith99b was chosen for this reference because you used to have a reference Smith99a which referred to Long Paper Title and was deleted on ”. The “suggested keys” link should take the user to a page with the ambiguous references, so they can check the “manually edit citation key” box and change the suggested keys. If there are duplicate keys then set the keys automatically as above, but add a non-modal warning box to the top of the Paperpile front page next time they visit, saying something like “could not disambiguate citation keys … view suggested keys… what is this?” With “suggested keys” and “what is this” being hyperlinks. When you import a new reference, query the references the user already has.If the reference gets moved to a label or folder with the “set key manually” setting on then keep the automatic key but check the “set key manually” check box. When a user imports a new reference set the key automatically.When the check-box is ticked, allow the user to edit the citation key in a text box, in the same way they edit paper titles and other data. Add a check-box to every citation and similar label- and folder-level check-boxes to say “set citation key manually”, with a suitable “what is this?” to explain it.Hi that’s a really interesting UX problem! I think any solution would add some extra complexity in several places, but personally I would resolve the issue in this way: That’s a decision we made but we can see the other side where people lose their well curated BibTeX keys.Īnyway, we hope to find a solution that will allow us to offer customizable keys which is efficient and gets all the weird edge cases right. We re-assign everything to make sure we have consistent keys without duplicates. If we keep the assignment forever people will complain that there is a Smith99b without a Smith99a. No matter what we do, we will get e-mails from people telling me our software is brokenīecause if we re-assign the suffixes the citations in their papers will not match anymore. What if I delete Smith99a from my library and then add a new Smith99 will it become Smith99a again or Smith99c because there is already a Smith99b.
The problem is how to assign “a” and “b”. But that would not even be the hardest problem.
If we allow Smith99a and Smith99b we need to check potentially 10k other papers if a user changes the author. With a simple de-duplication random key like we add now we can generate the citation key deterministically just from the reference data. Actually we used to have a very early prototype which had a very sophisticated pattern mechanism.