# Workflow for managing references?

What is your workflow for managing references? How does this workflow scale?

Do you use programs like zotero, mendeley, jabref? What are their pros and cons?

Does it allow easy integration of biblatex or it is bibtex only?

-
This might work best as a CW? – Seamus May 23 '11 at 12:00
This all seems a bit diffuse to me. @Seamus has done a good job of trying to answer the various parts, but without a bit more detail some of it is quite hard. For example, 'workflow' depends on the editor you use. – Joseph Wright May 23 '11 at 12:10
To make clearer what @Joseph has in mind: please list what features/properties your "dream" workflow should have, and the answers you get will be much more focused. Generic and subjective questions ("best" is obviously different for different disciplines and users), while acceptable, are frowned upon on TeX-SE. – Martin Tapankov May 23 '11 at 12:14
@Seamus, yeah, propably it will be better as a CW and/or break it seperate questions. @Martin I am just trying to get ideas... Currently my references are manageable even by hand, but I am a bit worried about the scaling. – pmav99 May 23 '11 at 12:28
@pmav99: I understand that, but TeX-SE works best for answer-able questions, not when you just try to solicit opinions. So if scaling is an important feature for you, by all means, include it in the question description. – Martin Tapankov May 23 '11 at 12:40

There seem to be three distinct questions here. I'll answer them each in turn for my favourite set up.

# Workflow

I use emacs (with auctex and reftex) for my writing, so when I want to add a reference it's a matter of C-[ and then typing the beginning of the key. If the work I want to cite isn't in my bibliography, I switch to the bibliography file and add it in immediately with C-c C-b. This way, I don't have that horrible period at the end of the writing process where you have to put in all the references in the right place.

# Bibliography management

I have one giant bibliography file that I use for all my work. I don't use Zotero, Mendeley or their ilk. They seem more trouble than they're worth, to my mind. Since I reference a lot of books, I have to add plenty of references by hand anyway.

RefTeX allows me to search this and insert entries in a sensible way. I fail to see how automating this is all that useful. Maybe that's because, in my field, reference lists tend to be relatively small, and the mendeley database (which I did try once) is poorly curated...

# BibLaTeX

Any system should work fine with BibLaTeX. Switching to BibLaTeX doesn't really involve much work and it shouldn't really affect your workflow. If you're using say \parencite and other BibLaTeX-only cite commands, you may need to add them to your favourite "automatic cite inserter" method. My current set up is to use \let\cite\autocite and then just use \cite. I guess it wouldn't be too tricky to add \autocite and friends to aucTeX's cite insertion mechanism.

You may want to switch to using biber too.

-

I use Zotero and I found this workflow works well so far, let me know if you find a better way to get the same job done:

Workflow settings:

The below workflow makes use of Zotero citation manager + biblatex + Biber backend + TexStudio as text editor in order to automate the whole process of bibliography citation in LaTeX, finally, without manual data entry which is prone to human error. Zotero is doing all of the heavy work of capturing citations from the web and nicely tagging them (I prefer all references to be in one folder for one project, so that tagging can be more efficiently utilized to find relevant entries). For differences between different packages and backends in LaTeX, this can be of help. TexStudio is easy to learn, and well documented, feature-full and supports both biblatex and biber, you might want to read this blog for more info. But first, you have to tweak of all these tools in order to get there, and as follows:

Zotero citation manager: You should know how to use Zotero by reading the documentation and tutorials and assuming you have a data bank of all references in this open-source free software, you want now to export these entries into another file of .bib extension to be used by biblatexin LaTeX file. Keep Zotero backup folder at a different path from FireFox default.

• Download the bibtex-citep.js translator from here

• Add this file to translators folder of Zotero, to know this path in your platform, open Zotero -> Tools -> Options -> Advanced -> Files and Folders Tab, under Data Directory Locations (from here also you can custom a different path from Firefox to any safe location you like) -> Show Data Directory: this will show you the directory of Zotero if you forget where it is, then add the downloaded file of translator into translators folder

• Edit bibtex-citep.js file using any text editor you like, I use NotePad++ and change two lines only:

//Zotero.write((first ? "\\citep{" : ",") + citekey); //original one commented out to be
Zotero.write(citekey); //replaced by doctorate
first = false;
}
//Zotero.write("}"); //original line commented out to be...
Zotero.write("");// replaced by doctorate

• From Zotero options, go to Export tab and select BibTex-citep from drop down menu of Defualt Output Format, this will set the format of export every time you export an item from Zotero to Bibtex format, please don't mix between BibTex backend and BibTex file format, we are interested in the latter.

• Now, every time you want to export a data entry (article, book, thesis) for citation copied to the clipboard, you just press Ctrl+Alt+C, this will automagically generate the citation key which is unique to each data entry in Zotero, do not waste your time generating your own, you will forget many of them after a while, let the keys be generated in silico, the keys will be generated by combination of author_title_year and those keys are going to be identified by biblatex since they are the same in the .bib file exported from Zotero, trust me open the file and see them by your own eyes.

• If you discover any typo or fields lacking in the bibliography always do the corrections from within Zotero and not from within the .bib file, as the latter would be always updated based on ever changing Zotero database. Therefore, it is very important to make sure that you export the most recent Zotero database before compiling your PDF

• To export the .bib file, you select the whole database of Zotero and right click the choose export itmes, select BibTex format, save the .bib file in the location of your .tex file

TexStudio Text Editor:

• Options -> Configure TexStudio -> Build; change Default Bibliography to biber

• Options -> Configure TexStudio -> Build; change Default Compiler to XeLaTeX to support some fonts, otherwise keep the default

• After finishing your .tex file, compile by pressing F6+F11+F6 as shortcut to LaTeX typesetting, bibliography biber backend, and LaTeX typesetting again

Biblatex customization:

• This is the most difficult step and requires reading the manual to customize styles

• I came up with the one style, originally taken from here with some tweak to get rid of some fields in exported .bib file in bibtex format from Zotero, you can change it as you like, see the comments in the below code

• Please note that I used \begin{filecontents}{\jobname.bib} to \end{filecontents} of this code you don't need to do your own bibliography, but this is only to have a minimal working example (MWE) here in this post. Typically, what would you like to do in your own case is to uncomment this line, instead, to feed biblatex with your own .bib file that was exported from Zotero; \addbibresource{C:/Users/Dropbox/phd/ref/Exported Items.bib}

• Don't forget to press F6+F11+F6 in TexStudio to compile your PDF file. Done!

code:

\documentclass[oneside]{scrbook}
\usepackage[none]{hyphenat}%
%=====================Language, Fonts============================
\usepackage[ngerman,english]{babel}
\selectlanguage{english}
\usepackage{courier,amsmath,amsfonts} %fonts
%=====================Referencing============================
\usepackage{xcolor} %
\usepackage{hyperref} %
\definecolor{dark-red}{rgb}{0.4,0.15,0.15}
\definecolor{dark-blue}{rgb}{0.15,0.15,0.4}
\definecolor{medium-blue}{rgb}{0,0,0.5}
\hypersetup{
citecolor={dark-blue}, urlcolor={medium-blue} %url can be magenta
}
\usepackage{filecontents} % to provide file
\begin{filecontents}{\jobname.bib}
@article{voth_bacterial_2012,
title = {Bacterial type {IV} secretion systems: versatile virulence machines},
volume = {7},
issn = {1746-0921},
shorttitle = {Bacterial Type {IV} secretion systems},
doi = {10.2217/fmb.11.150},
number = {2},
journal = {Future microbiology},
author = {Voth, Daniel E and Broederdorf, Laura J and Graham, Joseph G},
month = feb,
year = {2012},
note = {{PMID:} 22324993},
keywords = {Bacterial Proteins, Bacterial Secretion Systems, {DNA}, Bacterial, Gram-Negative Bacteria, Gram-Negative Bacterial Infections, Host-Pathogen Interactions, Humans, must read, Protein Transport, review, Signal Transduction, Species Specificity, {T4SS}, Transcription, Genetic, Ubiquitination, Virulence Factors},
pages = {241--257}
}
@article{vignali_il-12_2012,
title = {{IL-12} family cytokines: immunological playmakers},
volume = {13},
issn = {1529-2908},
shorttitle = {{IL-12} family cytokines},
url = {http://www.nature.com/ni/journal/v13/n8/full/ni.2366.html},
doi = {10.1038/ni.2366},
language = {en},
number = {8},
urldate = {2012-11-20},
journal = {Nature Immunology},
author = {Vignali, Dario A. A. and Kuchroo, Vijay K.},
year = {2012},
keywords = {{IL-12} family, key reference, language, review},
pages = {722--728}
}
@book{kennedy_pcr_2011,
title = {{PCR} Troubleshooting and Optimization: The Essential Guide},
isbn = {9781904455721},
shorttitle = {{PCR} Troubleshooting and Optimization},
language = {en},
publisher = {Horizon Scientific Press},
author = {Kennedy, Suzanne},
month = jan,
year = {2011},
keywords = {{PCR} troubleshooting, Polymerase Chain Reaction, {qPCR}, Science / Chemistry / General, Science / Life Sciences / Genetics \& Genomics}
}
@article{yamaoka_pathogenesis_2012,
title = {Pathogenesis of Helicobacter pylori-related gastroduodenal diseases from molecular epidemiological studies},
volume = {2012},
issn = {1687-6121},
url = {http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3398592/},
doi = {10.1155/2012/371503},
urldate = {2013-01-01},
journal = {Gastroenterology Research and Practice},
author = {Yamaoka, Yoshio},
year = {2012},
note = {{PMID:} 22829807
{PMCID:} {PMC3398592}},
keywords = {{CagA}, {dupA}, H.pylori, must read, {OipA}, review, {VacA}, virulence}
}

title = {Pre-{PCR} processing: strategies to generate {PCR-compatible} samples},
volume = {26},
issn = {1073-6085},
shorttitle = {Pre-{PCR} processing},
url = {http://www.ncbi.nlm.nih.gov/pubmed/14764939},
doi = {10.1385/MB:26:2:133},
number = {2},
urldate = {2011-04-21},
journal = {Molecular Biotechnology},
author = {Rådström, Peter and Knutsson, Rickard and Wolffs, Petra and Lövenklev, Maria and Löfström, Charlotta},
month = feb,
year = {2004},
note = {{PMID:} 14764939},
keywords = {Animals, Blood Chemical Analysis, {DNA}, Feces, Humans, Microchemistry, {PCR} inhibitors, Polymerase Chain Reaction, Pre-{PCR} process, {qPCR}, Specimen Handling},
pages = {133--146}
}
\end{filecontents}

\usepackage[backend=biber,style=chem-acs,terseinits=true,sorting=none,isbn=false,doi=false]{biblatex}
\addbibresource{\jobname.bib} % extension must be written
%\addbibresource{C:/Users/Dropbox/phd/ref/Exported Items.bib} % don't forget to writhe the path and extension of .bib file
\ExecuteBibliographyOptions{%
citetracker=true,% Citation tracker enabled in order not to repeat citations, and have two lists.
sorting=none,% Don't sort, just print in the order of citation
alldates=long,% Long dates, so we can tweak them at will afterwards
dateabbrev=false,% Remove abbreviations in dates, for same reason as alldates=long''
articletitle=true,% To have article titles in full bibliography
maxcitenames=999% Number of names before replacing with et al. Here, everyone.
}

% No brackets around the number of each bibliography entry

% Suppress article title, doi, url, etc. in citations
\AtEveryCitekey{%
\ifentrytype{article}
{\clearfield{title}}
{}%
\clearfield{doi}%
\clearfield{url}%
\clearlist{publisher}%
\clearlist{location}%
\clearfield{note}%
}

% Print year instead of date, when available; make use of urldate
\DeclareFieldFormat{urldate}{\bibstring{urlseen}\space#1}
\renewbibmacro*{date}{% Based on date bib macro from chem-acs.bbx
\iffieldundef{year}
{\ifentrytype{online}
{\printtext[urldate]{\printurldate}}
{\printtext[date]{\printdate}}}
{\printfield[date]{year}}}

% Remove period from titles
\DeclareFieldFormat*{title}{#1}
% Make year bold for @book types
\DeclareFieldFormat[book]{date}{\textbf{#1}} % doctorate added this line
% Embed doi and url in titles, when available
\renewbibmacro*{title}{% Based on title bib macro from biblatex.def
\ifboolexpr{ test {\iffieldundef{title}}
and test {\iffieldundef{subtitle}} }
{}
{\ifboolexpr{ test {\ifhyperref}
and not test {\iffieldundef{doi}} }
{\href{http://dx.doi.org/\thefield{doi}}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}}
{\ifboolexpr{ test {\ifhyperref}
and not test {\iffieldundef{url}} }
{\href{\thefield{url}}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}}%
\newunit}%
\clearfield{doi}%
\clearfield{url}%
\ifentrytype{article}% Delimit article and journal titles with a period
{}}

\begin{document}
The book reference  is here~\parencite{kennedy_pcr_2011}. All references have the year in bold in the bibliography~\parencite{vignali_il-12_2012}, whereas this one has some diacritics~\parencite{radstrom_pre-pcr_2004}. This article has a species name that you might want to change from within .bib file by adding \verb|\emph{Helicobacter pylori}| to emphasize the species name~\parencite{yamaoka_pathogenesis_2012}, the species name called \textit{Helicobacter pylori}'' that you want to be emphasized as it should be.\\

By the way I have Zotero now opened and doing \verb|CTR+ALT+C| and paste while citing references in this \LaTeX{} document by using \verb|TexStudio| wonderful \LaTeX{} editor, you may use a different one, but that should'nt be a problem anyway, as long as it supports \verb|biber| and \verb|biblatex| wonderful bibliography tools. \verb|TexStudio| also has the autocomplete feature that will show you all references after invoking it by the citation commands, but I find copy \& paste from Zotero much easier. How about experiencing \verb|multicite| commands of the \verb|Biblatex| neat package by citing all of the above~\parencites(compare)()[10--15]{kennedy_pcr_2011}[136]{radstrom_pre-pcr_2004}[725]{vignali_il-12_2012}{voth_bacterial_2012}{yamaoka_pathogenesis_2012}\\

Did you notice that the prenote compare'' was to all citations, and the specific page numbers for individual references. Read \verb|Biblatex| manual 3.7.3 Qualified Citation Lists. Please note that whenever an entry type has a DOI then you will see a clickable title in the bibliography section that will direct you to the website of that reference.
\printbibliography[title={References}] % change from bibliography to references
\end{document}


Citation result of the MWE:

Bibliography result of the MWE:

Happy ZoteroBiblatexing!

-
 thank you very much! – pmav99 16 hours ago

I use Mendeley.

HOWTO: Use Mendeley to create citations using LaTeX and BibTeX.

I use it's feature of create one bib file per collection.

Mendeley is comfortable, cause it keeps exports up-to-date and synchronized.

Thanks to that, I avoid one giant bib file. Instead, I collect them into gropus, and some of them are included into TeX documents.

Instead of linking TeX document directly, I use script which copies bib files into my document.

Thanks to use of Git Source Code Versioning I can keep track on changes in bibliography and feel secure - if Mendeley would crash or lost something I always have previous versions.

Thanks to manual update of bib file in document directory, I can came back to document directory after long time, and still compile it. Cause it has it's own private bib file copy (or bib files copies).

To sum it up: Mendeley + Git + LaTeX + BibTex plus a few other indirectly connected with reference management, but with workflow and efficiency: Vim + SnipMate

-