Mutiple citations doesn't work with compress=no + interaction
I know that if I want to have clickable hyperlinks for citations, I need to turn off 'compress' for the citation type: \setupcite[authoryears][compress=no] The problem is that this doesn't seem to work: I get an 'unknown reference' error. references : unknown reference [][Balachandran2008 references : unknown reference [][Balachandran2008 references : unknown reference [][Balachandran2008 Strangely, this only happens when I want to refer to multiple authors, e.g. \cite[ref1, ref2, ref3], and everything works fine if I just do \cite[ref1]. I've attached a minimal example. Where am I going wrong? -- Michael Murphy
Michael Murphy wrote:
I know that if I want to have clickable hyperlinks for citations, I need to turn off 'compress' for the citation type:
\setupcite[authoryears][compress=no]
The problem is that this doesn't seem to work: I get an 'unknown reference' error.
references : unknown reference [][Balachandran2008 references : unknown reference [][Balachandran2008 references : unknown reference [][Balachandran2008
Strangely, this only happens when I want to refer to multiple authors, e.g. \cite[ref1, ref2, ref3], and everything works fine if I just do \cite[ref1].
I've attached a minimal example. Where am I going wrong?
It also only happens in mkiv, something is broken there. As is usual in the mkiv version of the bib module, I can't figure it out :( However, here is a workaround: %%%%%%%% \setupinteraction[state=start] \usemodule[bib] \let\NORMALcite\cite \newif\ifSEEN \def\cite#1[#2]{\SEENfalse \def\processitem##1{\ifSEEN, \else\SEENtrue \fi \NORMALcite[##1]}% (\processcommalist[#2]\processitem )} \setuppublications[refcommand=authoryears] \setupcite[authoryears][compress=no,left=,right=] \starttext .. %%%%%%%% Best wishes, Taco
On 08/06/10 20:47, taco wrote:
It also only happens in mkiv, something is broken there. As is usual in the mkiv version of the bib module, I can't figure it out :(
However, here is a workaround:
...
... and indeed, this works for the minimal example, but in my actual document, I get an error: ! Undefined control sequence. \dododescriptioncomponent ...entdescriptioncoding \s!tex \fi \ifx and I have no idea why. I guess I'll play around some more. -- Michael Murphy
Michael Murphy wrote:
On 08/06/10 20:47, taco wrote:
It also only happens in mkiv, something is broken there. As is usual in the mkiv version of the bib module, I can't figure it out :(
However, here is a workaround:
...
... and indeed, this works for the minimal example, but in my actual document, I get an error:
! Undefined control sequence. \dododescriptioncomponent ...entdescriptioncoding \s!tex \fi \ifx
and I have no idea why. I guess I'll play around some more.
Wild guess: can you try with this definition in the setup part of your document? \unexpanded\def\dodescriptioncomponent {\doifelsedescriptioncomponent \nododescriptioncomponent\dododescriptioncomponent} Best wishes, Taco
On 09/06/10 11:24, Taco Hoekwater wrote:
Michael Murphy wrote:
On 08/06/10 20:47, taco wrote:
It also only happens in mkiv, something is broken there. As is usual in the mkiv version of the bib module, I can't figure it out :(
However, here is a workaround:
...
... and indeed, this works for the minimal example, but in my actual document, I get an error:
! Undefined control sequence. \dododescriptioncomponent ...entdescriptioncoding \s!tex \fi \ifx
and I have no idea why. I guess I'll play around some more.
Wild guess: can you try with this definition in the setup part of your document?
\unexpanded\def\dodescriptioncomponent {\doifelsedescriptioncomponent \nododescriptioncomponent\dododescriptioncomponent}
Best wishes, Taco
Thanks for the code, but that turns out not to help. The problem seems to be when I want to have references in footnotes (see attached minimal example). -- Michael Murphy
Michael Murphy wrote:
Thanks for the code, but that turns out not to help. The problem seems to be when I want to have references in footnotes (see attached minimal example).
Ok, now I see. Attached is a new version of min_bib_fn.tex that fixes citations in footnotes. However ... something totally weird happens in the current context and beta's: the footnote appears to be repeated inside the body text. For some reason I do not understand, \placepublications also seems to process the footnote list (and because there is no proper definition for handling them, rubbish appears on the top of the publication list). This problem is not caused by the \cite inside the \footnote, nor by the redefinition of \cite, it happens without those as well. Best wishes, Taco
On 09/06/10 13:02, Taco Hoekwater wrote:
Michael Murphy wrote:
Thanks for the code, but that turns out not to help. The problem seems to be when I want to have references in footnotes (see attached minimal example).
Ok, now I see. Attached is a new version of min_bib_fn.tex that fixes citations in footnotes. However ... something totally weird happens in the current context and beta's: the footnote appears to be repeated inside the body text.
For some reason I do not understand, \placepublications also seems to process the footnote list (and because there is no proper definition for handling them, rubbish appears on the top of the publication list).
This problem is not caused by the \cite inside the \footnote, nor by the redefinition of \cite, it happens without those as well.
Thanks, that works a treat. I also noticed the thing with the footnote, but it doesn't happen in my main document, so I wondered if it had something to do with the minimal setup. But you're right, it seems to always happen with \placepublications. Anyway, I've now modified things slightly so that I can still use the optional forms of \cite (like \cite[authoryear]), so my file now looks like \setupinteraction[state=start] \usemodule[bib] \setuppublications[refcommand=authoryears, criterium=all] \let\NORMALcite\cite \newif\ifSEEN \unexpanded\def\cite[#1]{\strictdoifnextoptionalelse{\NORMALcite[#1]}% {\domycite[#1]}} \def\domycite#1[#2]{\SEENfalse \def\processitem##1{\ifSEEN, \else\SEENtrue \fi \NORMALcite[##1]}% (\processcommalist[#2]\processitem )} \setupcite[authoryears][compress=no,left=,right=] \setupcite[authoryear][compress=no] ... Of course, the other disadvantage of this at present is that I don't get 'and' separating the last two references when I use \domycite. But I can live with that (on screen at least, for printing I can revert to the old behaviour). -- Michael Murphy
participants (3)
-
Michael Murphy
-
taco
-
Taco Hoekwater