I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. It looks like a problem has crept in with the <inproceedings> type. the macro setup: \usepublications [literature] \setuppublications [alternative=apa] \setuppublications [numbering=short,refcommand=data] \setuppublicationlist [% editor=\normalauthor,% author=\normalauthor,% artauthor=\normalauthor] \setuppublicationlist[firstnamesep={ },surnamesep={}] \def\bibentry#1{\bibentrypar \doifemptyelse{#1}{\def\bibentryspace{}}{\def\bibentryspace{\ }}% \cite[data][#1]\strut} \def\footnotecite{\dodoubleargument\dofootnotecite} \def\dofootnotecite[#1][#2]{% \def\bibentrypar{\def\bibentrypar{\par}}% \unskip\footnote{\processcommalist[#1]\bibentry \doifnotempty{#2}{\bibentryspace#2\strut\par}} } It fails for the following entry: \startpublication[k=campbell:92,t=inproceedings, a={{Campbell},{Wiener}},y=1992, n=54,s=CW92] \author[]{K.~W.}[K.~W.]{}{Campbell} \author[]{M.~J.}[M.~J.]{}{Wiener} \pubyear{1992} \arttitle{{DES is not a group}} \crossref{crypto92} \pages{512--517} \pubname{Springer-Verlag} \stoppublication But it works ok when <inproceedings> is replaced by <book>. The error message: <to be read again> \pbd: \bibgetvart #1->\csname pbd:#1\endcsname \plussix \bibalternative ... \??pv \@@currentalternative #1 \endcsname \dotypesetapublication ...ative {\bibgetvart {#1}} \removeunwantedspaces \egr... \next3 #1,->\dobibdata {#1} \doprocesscommaitem \doprocesscommalist ...item \gobbleoneargument #1, ]\relax \global \advance \... ... l.34 \par Hans van der Meer
Recently I reported the following problem: On 25 sep. 2011, at 19:58, H. van der Meer wrote:
I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. It looks like a problem has crept in with the <inproceedings> type.
The error message: <to be read again> \pbd: \bibgetvart #1->\csname pbd:#1\endcsname \plussix
Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message. Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project. Hans van der Meer
An addtionial remark here: in the .bib file this is caused by a missing "book title". On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
Recently I reported the following problem:
On 25 sep. 2011, at 19:58, H. van der Meer wrote:
I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. It looks like a problem has crept in with the <inproceedings> type.
The error message: <to be read again> \pbd: \bibgetvart #1->\csname pbd:#1\endcsname \plussix
Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message.
Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
Hans van der Meer
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
Step by step I am able to dig deeper in the problem. The fact that it used to work but now doesn't may well be connected with the fact that the booktitle in those cases came from a "crossref =" item in the bib file. Could it be the \crossref{} macro is not recognized any longer by the ConTeXt bib module? In file bibl-tra.mkiv I encounter the following comment: %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications. In typesetting the citation in the footnote I am solely using cite, not "\placepublications". Does someone know why earlier the \crossref worked and now obviously has been switched "out of the loop"? Is there another way to force these crossref's to be carried out? Hans van der Meer On 27 sep. 2011, at 10:07, Meer, H. van der wrote:
An addtionial remark here: in the .bib file this is caused by a missing "book title".
On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
Recently I reported the following problem:
On 25 sep. 2011, at 19:58, H. van der Meer wrote:
I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. It looks like a problem has crept in with the <inproceedings> type.
The error message: <to be read again> \pbd: \bibgetvart #1->\csname pbd:#1\endcsname \plussix
Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message.
Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
Hi, I think this is related to my message from yesterday [1]. The "booktitle" key is ignored in "inproceedings" entries when "crossref" is present. See the following excerpt from cont-ab.bst: #################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } #################################### So "title" is not set in the .bbl file. Good to know that I'm not the only one who's having trouble with that. I didn't know what I should expect when using "crossref", so I decided to not mind the missing booktitle. But it would still be nice (as seen in your example) if the actual citation style could decide whether or not to use "booktitle" aka "title". HTH, Stefan. [1] http://archive.contextgarden.net/message/20110926.093110.8bc078f6.en.html On 27.09.2011 10:41, Meer, H. van der wrote:
Step by step I am able to dig deeper in the problem. The fact that it used to work but now doesn't may well be connected with the fact that the booktitle in those cases came from a "crossref =" item in the bib file. Could it be the \crossref{} macro is not recognized any longer by the ConTeXt bib module?
In file bibl-tra.mkiv I encounter the following comment: %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications.
In typesetting the citation in the footnote I am solely using cite, not "\placepublications". Does someone know why earlier the \crossref worked and now obviously has been switched "out of the loop"? Is there another way to force these crossref's to be carried out?
Hans van der Meer
On 27 sep. 2011, at 10:07, Meer, H. van der wrote:
An addtionial remark here: in the .bib file this is caused by a missing "book title".
On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
Recently I reported the following problem:
On 25 sep. 2011, at 19:58, H. van der Meer wrote:
I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. It looks like a problem has crept in with the<inproceedings> type.
The error message: <to be read again> \pbd: \bibgetvart #1->\csname pbd:#1\endcsname \plussix
Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message.
Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
Yes, we are having the two faces same problem, I guess. The fact is that \booktitle in the crossref'ed publication should be processed as a \title item in the citatation crossreff'd. The error in my case boils down to the fact that the title-entry is called without being actually present. With the missing \title sofar I have nailed it down to macro \bibgetvart#1 from the following bbl entry: \startpublication[k=campbell:92,t=inproceedings, a={{Campbell},{Wiener}},y=1992, .. (no \title) \stoppublication and log printing in the log from the modified macro: \def\bibgetvart#1{\writestatus{ERROR}{Parameter <#1> on bibgetvart \expandafter\string\csname pbd:#1\endcsname}\csname pbd:#1\endcsname\plussix}% I find the log: ERROR > Parameter campbell:92 on bibgetvart \pbd:campbell:92 ERROR > Parameter <> on bibgetvart \pbd: ! Missing \endcsname inserted. Thus the missing \title thus seems to result in extra call to a bibliography entry that does not exist. This is about as far as I am at the moment in analyzing the problem. Hans van der Meer On 27 sep. 2011, at 12:09, Stefan Müller wrote:
Hi,
I think this is related to my message from yesterday [1]. The "booktitle" key is ignored in "inproceedings" entries when "crossref" is present. See the following excerpt from cont-ab.bst:
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
So "title" is not set in the .bbl file. Good to know that I'm not the only one who's having trouble with that.
I didn't know what I should expect when using "crossref", so I decided to not mind the missing booktitle. But it would still be nice (as seen in your example) if the actual citation style could decide whether or not to use "booktitle" aka "title".
HTH, Stefan.
[1] http://archive.contextgarden.net/message/20110926.093110.8bc078f6.en.html
On 27.09.2011 10:41, Meer, H. van der wrote:
Step by step I am able to dig deeper in the problem. The fact that it used to work but now doesn't may well be connected with the fact that the booktitle in those cases came from a "crossref =" item in the bib file. Could it be the \crossref{} macro is not recognized any longer by the ConTeXt bib module?
In file bibl-tra.mkiv I encounter the following comment: %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications.
In typesetting the citation in the footnote I am solely using cite, not "\placepublications". Does someone know why earlier the \crossref worked and now obviously has been switched "out of the loop"? Is there another way to force these crossref's to be carried out?
Hans van der Meer
On 27 sep. 2011, at 10:07, Meer, H. van der wrote:
An addtionial remark here: in the .bib file this is caused by a missing "book title".
On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
Recently I reported the following problem:
On 25 sep. 2011, at 19:58, H. van der Meer wrote:
I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. It looks like a problem has crept in with the<inproceedings> type.
The error message: <to be read again> \pbd: \bibgetvart #1->\csname pbd:#1\endcsname \plussix
Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message.
Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
Maybe one could modify #################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } #################################### to #################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages format.incoll.inproc.crossref "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } #################################### in cont-*.bst? I don't know if this would cause any trouble... Stefan On 27.09.2011 12:35, Meer, H. van der wrote:
Yes, we are having the two faces same problem, I guess. The fact is that \booktitle in the crossref'ed publication should be processed as a \title item in the citatation crossreff'd. The error in my case boils down to the fact that the title-entry is called without being actually present.
With the missing \title sofar I have nailed it down to macro \bibgetvart#1 from the following bbl entry:
\startpublication[k=campbell:92,t=inproceedings, a={{Campbell},{Wiener}},y=1992, .. (no \title) \stoppublication
and log printing in the log from the modified macro: \def\bibgetvart#1{\writestatus{ERROR}{Parameter<#1> on bibgetvart \expandafter\string\csname pbd:#1\endcsname}\csname pbd:#1\endcsname\plussix}%
I find the log: ERROR> Parametercampbell:92 on bibgetvart \pbd:campbell:92 ERROR> Parameter<> on bibgetvart \pbd: ! Missing \endcsname inserted.
Thus the missing \title thus seems to result in extra call to a bibliography entry that does not exist. This is about as far as I am at the moment in analyzing the problem.
Hans van der Meer
On 27 sep. 2011, at 12:09, Stefan Müller wrote:
Hi,
I think this is related to my message from yesterday [1]. The "booktitle" key is ignored in "inproceedings" entries when "crossref" is present. See the following excerpt from cont-ab.bst:
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
So "title" is not set in the .bbl file. Good to know that I'm not the only one who's having trouble with that.
I didn't know what I should expect when using "crossref", so I decided to not mind the missing booktitle. But it would still be nice (as seen in your example) if the actual citation style could decide whether or not to use "booktitle" aka "title".
HTH, Stefan.
[1] http://archive.contextgarden.net/message/20110926.093110.8bc078f6.en.html
On 27.09.2011 10:41, Meer, H. van der wrote:
Step by step I am able to dig deeper in the problem. The fact that it used to work but now doesn't may well be connected with the fact that the booktitle in those cases came from a "crossref =" item in the bib file. Could it be the \crossref{} macro is not recognized any longer by the ConTeXt bib module?
In file bibl-tra.mkiv I encounter the following comment: %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications.
In typesetting the citation in the footnote I am solely using cite, not "\placepublications". Does someone know why earlier the \crossref worked and now obviously has been switched "out of the loop"? Is there another way to force these crossref's to be carried out?
Hans van der Meer
On 27 sep. 2011, at 10:07, Meer, H. van der wrote:
An addtionial remark here: in the .bib file this is caused by a missing "book title".
On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
Recently I reported the following problem:
On 25 sep. 2011, at 19:58, H. van der Meer wrote:
I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. It looks like a problem has crept in with the<inproceedings> type.
The error message: <to be read again> \pbd: \bibgetvart #1->\csname pbd:#1\endcsname \plussix
Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message.
Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
This does not help. The error is still there. I guess because this doesn't add the missing title. I cannot see in the FUNCTION a format.title. But somwhere the bibmodule calls it from the proceedings entry. Hans van der Meer On 27 sep. 2011, at 12:50, Stefan Müller wrote:
Maybe one could modify
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
to
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages format.incoll.inproc.crossref "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
in cont-*.bst? I don't know if this would cause any trouble...
Stefan
On 27.09.2011 12:35, Meer, H. van der wrote:
Yes, we are having the two faces same problem, I guess. The fact is that \booktitle in the crossref'ed publication should be processed as a \title item in the citatation crossreff'd. The error in my case boils down to the fact that the title-entry is called without being actually present.
With the missing \title sofar I have nailed it down to macro \bibgetvart#1 from the following bbl entry:
\startpublication[k=campbell:92,t=inproceedings, a={{Campbell},{Wiener}},y=1992, .. (no \title) \stoppublication
and log printing in the log from the modified macro: \def\bibgetvart#1{\writestatus{ERROR}{Parameter<#1> on bibgetvart \expandafter\string\csname pbd:#1\endcsname}\csname pbd:#1\endcsname\plussix}%
I find the log: ERROR> Parametercampbell:92 on bibgetvart \pbd:campbell:92 ERROR> Parameter<> on bibgetvart \pbd: ! Missing \endcsname inserted.
Thus the missing \title thus seems to result in extra call to a bibliography entry that does not exist. This is about as far as I am at the moment in analyzing the problem.
Hans van der Meer
On 27 sep. 2011, at 12:09, Stefan Müller wrote:
Hi,
I think this is related to my message from yesterday [1]. The "booktitle" key is ignored in "inproceedings" entries when "crossref" is present. See the following excerpt from cont-ab.bst:
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
So "title" is not set in the .bbl file. Good to know that I'm not the only one who's having trouble with that.
I didn't know what I should expect when using "crossref", so I decided to not mind the missing booktitle. But it would still be nice (as seen in your example) if the actual citation style could decide whether or not to use "booktitle" aka "title".
HTH, Stefan.
[1] http://archive.contextgarden.net/message/20110926.093110.8bc078f6.en.html
On 27.09.2011 10:41, Meer, H. van der wrote:
Step by step I am able to dig deeper in the problem. The fact that it used to work but now doesn't may well be connected with the fact that the booktitle in those cases came from a "crossref =" item in the bib file. Could it be the \crossref{} macro is not recognized any longer by the ConTeXt bib module?
In file bibl-tra.mkiv I encounter the following comment: %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications.
In typesetting the citation in the footnote I am solely using cite, not "\placepublications". Does someone know why earlier the \crossref worked and now obviously has been switched "out of the loop"? Is there another way to force these crossref's to be carried out?
Hans van der Meer
On 27 sep. 2011, at 10:07, Meer, H. van der wrote:
An addtionial remark here: in the .bib file this is caused by a missing "book title".
On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
Recently I reported the following problem:
On 25 sep. 2011, at 19:58, H. van der Meer wrote:
> I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. > It looks like a problem has crept in with the<inproceedings> type. > > The error message: > <to be read again> > \pbd: > \bibgetvart #1->\csname pbd:#1\endcsname > \plussix
Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message.
Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
On 27.09.2011 13:33, Meer, H. van der wrote:
This does not help. The error is still there. I guess because this doesn't add the missing title. I cannot see in the FUNCTION a format.title. But somwhere the bibmodule calls it from the proceedings entry.
Hans van der Meer
In my test file the "booktitle" was present as "\title" (used by bibl-apa.tex) when the "crossref" was missing... so I guessed this should work... Stefan
On 27 sep. 2011, at 12:50, Stefan Müller wrote:
Maybe one could modify
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
to
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages format.incoll.inproc.crossref "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
in cont-*.bst? I don't know if this would cause any trouble...
Stefan
On 27.09.2011 12:35, Meer, H. van der wrote:
Yes, we are having the two faces same problem, I guess. The fact is that \booktitle in the crossref'ed publication should be processed as a \title item in the citatation crossreff'd. The error in my case boils down to the fact that the title-entry is called without being actually present.
With the missing \title sofar I have nailed it down to macro \bibgetvart#1 from the following bbl entry:
\startpublication[k=campbell:92,t=inproceedings, a={{Campbell},{Wiener}},y=1992, .. (no \title) \stoppublication
and log printing in the log from the modified macro: \def\bibgetvart#1{\writestatus{ERROR}{Parameter<#1> on bibgetvart \expandafter\string\csname pbd:#1\endcsname}\csname pbd:#1\endcsname\plussix}%
I find the log: ERROR> Parametercampbell:92 on bibgetvart \pbd:campbell:92 ERROR> Parameter<> on bibgetvart \pbd: ! Missing \endcsname inserted.
Thus the missing \title thus seems to result in extra call to a bibliography entry that does not exist. This is about as far as I am at the moment in analyzing the problem.
Hans van der Meer
On 27 sep. 2011, at 12:09, Stefan Müller wrote:
Hi,
I think this is related to my message from yesterday [1]. The "booktitle" key is ignored in "inproceedings" entries when "crossref" is present. See the following excerpt from cont-ab.bst:
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
So "title" is not set in the .bbl file. Good to know that I'm not the only one who's having trouble with that.
I didn't know what I should expect when using "crossref", so I decided to not mind the missing booktitle. But it would still be nice (as seen in your example) if the actual citation style could decide whether or not to use "booktitle" aka "title".
HTH, Stefan.
[1] http://archive.contextgarden.net/message/20110926.093110.8bc078f6.en.html
On 27.09.2011 10:41, Meer, H. van der wrote:
Step by step I am able to dig deeper in the problem. The fact that it used to work but now doesn't may well be connected with the fact that the booktitle in those cases came from a "crossref =" item in the bib file. Could it be the \crossref{} macro is not recognized any longer by the ConTeXt bib module?
In file bibl-tra.mkiv I encounter the following comment: %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications.
In typesetting the citation in the footnote I am solely using cite, not "\placepublications". Does someone know why earlier the \crossref worked and now obviously has been switched "out of the loop"? Is there another way to force these crossref's to be carried out?
Hans van der Meer
On 27 sep. 2011, at 10:07, Meer, H. van der wrote:
An addtionial remark here: in the .bib file this is caused by a missing "book title".
On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
> Recently I reported the following problem: > > On 25 sep. 2011, at 19:58, H. van der Meer wrote: > >> I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. >> It looks like a problem has crept in with the<inproceedings> type. >> >> The error message: >> <to be read again> >> \pbd: >> \bibgetvart #1->\csname pbd:#1\endcsname >> \plussix > > Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message. > > Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
My best guess now is the description of the FUNCTION {format.crossref} { "" "\crossref" crossref do.out } entry on the .bst file. Probably this generates the bad code leading to a missing \endcsname. Hans van der Meer On 27 sep. 2011, at 13:33, Meer, H. van der wrote:
This does not help. The error is still there. I guess because this doesn't add the missing title. I cannot see in the FUNCTION a format.title. But somwhere the bibmodule calls it from the proceedings entry.
Hans van der Meer
On 27 sep. 2011, at 12:50, Stefan Müller wrote:
Maybe one could modify
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
to
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages format.incoll.inproc.crossref "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
in cont-*.bst? I don't know if this would cause any trouble...
Stefan
On 27.09.2011 12:35, Meer, H. van der wrote:
Yes, we are having the two faces same problem, I guess. The fact is that \booktitle in the crossref'ed publication should be processed as a \title item in the citatation crossreff'd. The error in my case boils down to the fact that the title-entry is called without being actually present.
With the missing \title sofar I have nailed it down to macro \bibgetvart#1 from the following bbl entry:
\startpublication[k=campbell:92,t=inproceedings, a={{Campbell},{Wiener}},y=1992, .. (no \title) \stoppublication
and log printing in the log from the modified macro: \def\bibgetvart#1{\writestatus{ERROR}{Parameter<#1> on bibgetvart \expandafter\string\csname pbd:#1\endcsname}\csname pbd:#1\endcsname\plussix}%
I find the log: ERROR> Parametercampbell:92 on bibgetvart \pbd:campbell:92 ERROR> Parameter<> on bibgetvart \pbd: ! Missing \endcsname inserted.
Thus the missing \title thus seems to result in extra call to a bibliography entry that does not exist. This is about as far as I am at the moment in analyzing the problem.
Hans van der Meer
On 27 sep. 2011, at 12:09, Stefan Müller wrote:
Hi,
I think this is related to my message from yesterday [1]. The "booktitle" key is ignored in "inproceedings" entries when "crossref" is present. See the following excerpt from cont-ab.bst:
#################################### FUNCTION {inproceedings} { start.entry format.authors format.year format.arttitle crossref missing$ { format.in.booktitle.or.series format.number.series "" "\city" address do.out format.pages } { format.incoll.inproc.crossref format.pages } if$ "" "\pubname" publisher do.out "" "\organization" organization do.out stop.entry } ####################################
So "title" is not set in the .bbl file. Good to know that I'm not the only one who's having trouble with that.
I didn't know what I should expect when using "crossref", so I decided to not mind the missing booktitle. But it would still be nice (as seen in your example) if the actual citation style could decide whether or not to use "booktitle" aka "title".
HTH, Stefan.
[1] http://archive.contextgarden.net/message/20110926.093110.8bc078f6.en.html
On 27.09.2011 10:41, Meer, H. van der wrote:
Step by step I am able to dig deeper in the problem. The fact that it used to work but now doesn't may well be connected with the fact that the booktitle in those cases came from a "crossref =" item in the bib file. Could it be the \crossref{} macro is not recognized any longer by the ConTeXt bib module?
In file bibl-tra.mkiv I encounter the following comment: %D \macros{bib@crossref} %D %D \type{\crossref} is used in database files to point to another %D entry. Because of this special situation, it has to be defined %D separately. Since this command will not be seen until at %D \type{\placepublications}, it may force extra runs. The same is %D true for \type{\cite} commands inside of publications.
In typesetting the citation in the footnote I am solely using cite, not "\placepublications". Does someone know why earlier the \crossref worked and now obviously has been switched "out of the loop"? Is there another way to force these crossref's to be carried out?
Hans van der Meer
On 27 sep. 2011, at 10:07, Meer, H. van der wrote:
An addtionial remark here: in the .bib file this is caused by a missing "book title".
On 27 sep. 2011, at 10:03, Hans van der Meer wrote:
> Recently I reported the following problem: > > On 25 sep. 2011, at 19:58, H. van der Meer wrote: > >> I used the following macro for typsetting literature references in footnotes. It worked without problems until now, but then I didn't use the bib module for some time. >> It looks like a problem has crept in with the<inproceedings> type. >> >> The error message: >> <to be read again> >> \pbd: >> \bibgetvart #1->\csname pbd:#1\endcsname >> \plussix > > Digging into the code I finally was able to nail the problem: the offending citation being of type "t=inproceedings" was missing the "title" item. Then I observe a call with #1 in bibgetvart empty, somehow leading to a missing \endcsname error message. > > Obviously earlier this wasn't a problem but now is. I guess because the code changed since my previous work on the project.
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
On 09/27/2011 02:51 PM, Meer, H. van der wrote:
My best guess now is the description of the FUNCTION {format.crossref} { "" "\crossref" crossref do.out } entry on the .bst file. Probably this generates the bad code leading to a missing \endcsname.
I do not have time to pay close attention right now, but the .bst has not changed in years, as far as I know. Best wishes, Taco
On 27.09.2011 14:56, Taco Hoekwater wrote:
On 09/27/2011 02:51 PM, Meer, H. van der wrote:
My best guess now is the description of the FUNCTION {format.crossref} { "" "\crossref" crossref do.out } entry on the .bst file. Probably this generates the bad code leading to a missing \endcsname.
I do not have time to pay close attention right now, but the .bst has not changed in years, as far as I know.
Best wishes, Taco
Maybe the problem is already present for so long. It occurs only if "title" of an "inproceedings" that has "crossref" set is accessed. The bibl-*.tex files don't do that. Stefan
This problem MIGHT BE SOLVED. I cross my fingers! I tried to analyze what happens. The following is seen when typesetting [campbell:92] with a crosslink to [crypto92]:
Parameter campbell:92 on bibgetvard\pbd:campbell:92 ------ crossref crypto92 -------- CALLED FROM \bib@crossref#1 Parameter campbell:92 on bibgetvart\pbd:campbell:92 ------ authoretallimit -------- ------ authoretaldisplay -------- ------ firstnamesep -------- ------ lastnamesep -------- ------ firstnamesep -------- ------ | | -------- NOTE THIS COMES FROM \bibinsertcrossref#1#2#3 >>> all 3 are empty ------ left -------- Parameter <> on bibgetvard\pbd: ------ \writestatus {ERROR}{Parameter <> on bibgetvart\pbd:}\pbd: \plussix -------- Parameter <> on bibgetvart\pbd: ! Missing \endcsname inserted.
I can see that \bibinsertcrossref gets the proper reference because the defined variable is: @@pb@crossref=crypto92 Experimenting on \bibinsertcrossref (inside \unprotect-\protect): Redefine \def\bibinsertcrossref#1#2#3{\cite[crypto92]} CITE WORKS! But redefine: \def\bibinsertcrossref#1#2#3{\cite[\@@pb@crossref]} CITE GIVES AN ERROR The redefine: \def\bibinsertcrossref#1#2#3{\edef\tmp{\@@pb@crossref}\cite[\tmp]} CITE WORKS Therefore I propose to change the definition of \bibinsertcrossref to: \def\bibinsertcrossref#1#2#3{\bibdoifelse\@@pb@crossref{\edef\tmp{\@@pb@crossref}#1\cite[\tmp]#2}{#3}} Hans van der Meer On 27 sep. 2011, at 15:07, Stefan Müller wrote:
On 27.09.2011 14:56, Taco Hoekwater wrote:
On 09/27/2011 02:51 PM, Meer, H. van der wrote:
My best guess now is the description of the FUNCTION {format.crossref} { "" "\crossref" crossref do.out } entry on the .bst file. Probably this generates the bad code leading to a missing \endcsname.
I do not have time to pay close attention right now, but the .bst has not changed in years, as far as I know.
Best wishes, Taco
Maybe the problem is already present for so long. It occurs only if "title" of an "inproceedings" that has "crossref" set is accessed. The bibl-*.tex files don't do that.
Stefan ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
participants (4)
-
Hans van der Meer
-
Meer, H. van der
-
Stefan Müller
-
Taco Hoekwater