Integrating Zotero and Scrivener for citation management

Note: the following will be long and kind of technical, and of no interest to anyone who isn't interested in managing lots of references for long-form writing.

I love Scrivener. Love love love it. But I had been unable to figure out how to integrate it with my bibliography management in Zotero, even after multiple Internet searches. This was a problem, as I also love using Zotero, and want to keep supporting the project and its developers. But it was getting increasingly unwieldy to hardcode citation references into Scrivener text by dragging-and-dropping from Zotero -- which was the usual solution suggested. When you start getting into 50 page documents that need to be outputted with different citation styles for different publication venues, manually copying and pasting the citations with each new submission is...frustrating.

Zotero has a plug-in that works with Word to obviate the need for manual copying and pasting, apparently. In that model, you basically add code snippets to your text that list all the citation variables. Then, you can export your doc and transform the snippets into whatever citation format you like. A nice separation of content and presentation layer.

So I figured that maybe there was some obvious technical fix I had missed about replicating that replaceability in Scrivener. Hallelujah, there was. What was confusing me is that there no official Zotero plug-in for Scrivener to manage the conversion between one citation formatting style and other, à la the Word plugin.

However, it turns out that Zotero has a function called RTF Scan essentially does the same thing.

Here's how it works.

You merrily type along in Scrivener, inserting your citations as usual, but in brackets. So, I would reference a work by Bruno Latour published in 2005 as {Latour, 2005}. Then, you export the Scrivener file as an RTF (which is one of the basic options in Scrivener's Export command). Then, you go to Zotero and select the "RTF Scan" option from under the little gear icon. Choose the RTF file you just made. Blammo! It scans the citations in curly brackets and automatically links them to items in your Zotero database. Then it prompts you manually link up citations that it couldn't find.

At the end, you have an RTF file output with all the citations in curly brackets neatly output in whatever format you like (ACM, APA, whatever) which can then be opened in Word or wherever for formatting. This is more convoluted than just using End Note or Zotero with Word, but does allow me to zip along adding citations as I go in Scrivener. And it does what it's supposed to do, which is separate the content layer (Scrivener) from the presentation layer (Word) through a citation transform function.

I cannot believe it took me this long to figure it out, though.

All the information on RTF Scan is, yes, in the manual. It's just not actually put in context of what you'd use RTF Scan for. Which is why I'm writing this up now. I should not have had to read each and every comment to a post on ProfHacker (not to mention fruitlessly trawling both the Zotero and Scrivener forums) to figure out how to hack the two together.