My biggest enemy is the page limit. I use short versions of my BibTeX entries in order to keep the list of references short. I now have a situation where I include the file in the journal article and also in a book. I want to use the long reference in the book and the short in the journal. I defined a boolean that is set to true if we are in the journal tex files and then defined a command that is supposed to return the short or long key depending on the value of the boolean. But somehow this does not work. Is there a way to reach my goals?

If you use etoolbox (which I prefer as its syntax seems simpler to me) you should use a toggle: \newtoggle{jl}\toggletrue{jl}, and then \newcommand{\citekeyshortlong}[2]{\iftoggle{jl}{#1}{#2}}.
–
Peter GrillNov 14 '12 at 8:42