A reasonable solution for the time being would be to check if the
righttext argument is empty, and add a final period in the footnote only if
it is not (with the assumption being that the user would provide
punctuation in any righttext for footnote/endnote citations). I've pushed
the following change to the GitHub repo, if you'd like to pull and use it:
```
% Inline footnote citation setup (with intelligent trailing punctuation
replacement)
\startsetups btx:sbl:cite:footnote
\removeunwantedspaces
\doifinstring{\btxparameter{punct}}{\btxparameter{autopunctuation}}{\btxparameter{punct}}
\begingroup
\letbtxparameter{punct}\empty % don't pass the trailing punctuation down
to the inline setup
\startfootnote
\Word{\fastsetup{btx:sbl:cite:inline}}% capitalize the first word in
the footnote (needed to render "Ibid." and "Idem" correctly)
% Add a closing period if there is no righttext
\doif{\btxparameter{righttext}}{\empty} {
\btxperiod
}
\stopfootnote
\endgroup
\doifnotinstring{\btxparameter{punct}}{\btxparameter{autopunctuation}}{\btxparameter{punct}}
\stopsetups
```
This should allow your script to compile, but unfortunately, it doesn't
seem to make endnotes work, at least not when I try it. For some reason,
the macro \Word{\fastsetup{btx:sbl:cite:inline}} is expanding to nothing
inside the \startfootnote ... \stopfootnote environment. I have no idea why
this is happening, so any ideas are appreciated.
Joey
On Sat, Dec 25, 2021 at 1:11 PM Joey McCollum
Joel,
You may not have done anything wrong; this may be an issue with ConTeXt-SBL. In my code for the btx:sbl:cite:footnote setup in publ-imp-sbl.mkvi, I added a comment to this effect:
``` \startsetups btx:sbl:cite:footnote \removeunwantedspaces
\doifinstring{\btxparameter{punct}}{\btxparameter{autopunctuation}}{\btxparameter{punct}} \begingroup \letbtxparameter{punct}\empty % don't pass the trailing punctuation down to the inline setup \let\doifendswithpunctelse\btx_sbl_doifendswithpunctelse % why is this necessary? For some reason, \btx_sbl_doifendswithpunctelse is not recognized within the footnote environment... \startfootnote \Word{\fastsetup{btx:sbl:cite:inline}}% capitalize the first word in the footnote (needed to render "Ibid." and "Idem" correctly) % Add a closing period, unless the righttext ends with punctuation \doifendswithpunctelse{\btxparameter{righttext}} { \removeunwantedspaces } { \removeunwantedspaces \btxperiod } \stopfootnote \endgroup
\doifnotinstring{\btxparameter{punct}}{\btxparameter{autopunctuation}}{\btxparameter{punct}} \stopsetups ```
I define the \btx_sbl_doifendswithpunctelse macro earlier in the module. Initially, when I tried to invoke this macro within the \startfootnote ... \stopfootnote environment (to conditionally add a period at the end of a footnote citation if it does not have a righttext ending with punctuation), I got the same error you got, but for \btx_sbl_doifendswithpunctelse. I wasn't sure why this was happening, so I tried defining a new \doifendswithpunctelse macro. Unfortunately, based on your e-mail, it looks like this doesn't actually fix the problem.
Any help from other developers would be appreciated here! Unfortunately, I don't have a MWE replicating the problem on hand at the moment.
Joey
On Sat, Dec 25, 2021 at 1:04 PM Joel via ntg-context
wrote: I am using the ConTeXt-SBL package for citations. I need to move my footnotes to the end of each article.
According to the manual, I can suppress the placement of footnotes using two lines of code. I've added these to my minimal working code, placing \setupnote[footnote][location=none] in the header and \placenotes[footnote] where I want the endnotes to appear. It complains this error:
"Undefined control sequence \doifendswithpunctelse"
What did I do wrong?
--Joel
Code follows:
\usemodule[publ-imp-sbl] \startbuffer [bib]
@Article{na2006, title={Volcanoes \word{of} New Mexico}, year={2006}, journal={New Mexico Earth Matters}, publisher={New Mexico Bureau \word{of} Geology \word{and} Mineral Resources}, volume={6}, number={1}, location={Socorro, New Mexico} }
@Book{clark1989, author = {Clark, William}, title = {Railroads \word{and} railroad towns \word{in} New Mexico}, publisher = {New Mexico Magazine}, year = {1989}, address = {Albuquerque, New Mexico}, isbn = {9780937206126} }
\stopbuffer
\usebtxdataset[bib.buffer]
\setupbtx[dataset=default] \usebtxdefinitions[sbl] \setupbtx[sbl]
\setupnote[footnote][location=none]
\starttext
\input knuth \cite[clark1989]
\placenotes[footnote]
\startchapter[title=Bibliography] \placelistofpublications \stopchapter
\stoptext
___________________________________________________________________________________ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net
___________________________________________________________________________________