![](https://secure.gravatar.com/avatar/607919c9bb8a0aebced8df36da178182.jpg?s=120&d=mm&r=g)
A concise solution that I found would work was to define a "shorthand"
citation alternative and just print the shorthand with that:
```
% Shorthand citation setup
\startsetups btx:sbl:cite:shorthand
\begingroup
\def\currentbtxcategory{\btxfield{category}}
\texdefinition{btx:sbl:inline:shorthand}
\endgroup
\removeunwantedspaces
\removepunctuation
\stopsetups
...
\expanded{\abbreviation[\currentbtxtag]{\textcite[alternative=shorthand,lefttext=,righttext=][\currentbtxtag]}{\textcite[alternative=listsubcite,lefttext=,righttext=][\currentbtxtag]}}
```
Again, this works, although I'm still not sure why
invoking \texdefinition{btx:sbl:inline:shorthand} directly doesn't.
Joey
On Wed, Oct 6, 2021 at 5:58 PM Joey McCollum
Interestingly, if I remove the contents of the btx:sbl:inline:shorthand command and paste them inline as the third argument of \abbreviation, then it works as expected:
``` \expanded{\abbreviation[\currentbtxtag]{\btxdoif{shorthand}{\doifinsetelse{\btxflush{type}}{plainttitle, plainshorthand}{\btxflush{shorthand}}{\btxstartstyleandcolor[sbl:\s!list:title:\currentbtxcategory]\btxusecommand[sbl:\s!list:title:\currentbtxcategory]{\btxflush{shorthand}}\btxstopstyleandcolor}}}{\textcite[alternative=listsubcite,lefttext=,righttext=][\currentbtxtag]}} ```
But obviously, this is much less readable. So if there is a more concise solution that applies expansion control to \texdefinition{btx:sbl:inline:shorthand}, I'd love to know it!
Thanks!
Joey
On Wed, Oct 6, 2021 at 3:05 PM Joey McCollum
wrote: Okay, I had a follow-up question sooner than I thought! Enclosing the \abbreviation command doesn't quite work when I want to typeset the abbreviated form with a \texdefinition, as follows:
``` \texdefinition{btx:sbl:doifownfield} {shorthand} {
\expanded{\abbreviation[\currentbtxtag]{\texdefinition{btx:sbl:inline:shorthand}}{\textcite[alternative=listsubcite,lefttext=,righttext=][\currentbtxtag]}} } ```
Thankfully, everything else gets rendered as expected. But why is the \texdefinition not expanding? If it helps, I've included it below:
``` \starttexdefinition btx:sbl:inline:shorthand \btxdoif {shorthand} { % If the entry is of type plaintitle or plainshorthand, then do not apply formatting to its shorthand \doifinsetelse{\btxflush{type}}{plainttitle, plainshorthand} { \btxflush{shorthand} } { \btxstartstyleandcolor[sbl:\s!list:title:\currentbtxcategory] \btxusecommand[sbl:\s!list:title:\currentbtxcategory]{ \btxflush{shorthand}% set the shorthand according to the current category } \btxstopstyleandcolor } \btxcomma } \stoptexdefinition ```
Do I have to apply expansion control somewhere else or in some other way?
Joey
On Wed, Oct 6, 2021 at 2:35 PM Joey McCollum
wrote: All right, I think I see what I did wrong; I just needed to enclose the whole \abbreviation command in an \expanded command as follows:
``` \startsetups btx:sbl:cite:short ... \btxdoif {shorthand} {
\expanded{\abbreviation[\currentbtxtag]{\btxflush{shorthand}}{\btxflush{title}}} } ... \stopsetups ```
It looks like passing the macro \currentbtxtag as the tag for the abbreviation works fine. And if I redefine the abbreviations synonyms list as follows, I can use \inshort[\currentbtxtag]:
``` \definesynonyms[abbreviation][abbreviations][\infull][\inshort] ```
I'll add more to the thread if I run into any problems making this more complex!
Joey
On Wed, Oct 6, 2021 at 12:35 PM Joey McCollum < jmccollum20140511@gmail.com> wrote:
(Quick note for anyone following this thread: I've figured out how to implement different typesetting rules for list, inline, and short-form citations; you can see how I've done this in the publ-imp-sbl.mkvi file in the https://github.com/jjmccollum/context-sbl repository.)
I have another question related to abbreviations/synonyms in connection with bibliographies. When a bibliographic entry has a "shorthand" field and I cite it using \cite[alternative=short], I would like to add its shorthand to the abbreviations list, with a longer citation as its "in-full" form. My first thought was that I could accomplish this with something like the following:
``` \startsetups btx:sbl:cite:short ... \btxdoif {shorthand} {
\abbreviation[\currentbtxtag]{\btxflush{shorthand}}{\btxflush{title}} } ... \stopsetups ```
But even if I invoke \placelistofabbreviations with the "criterium=all" option, nothing appears in the list.
In some ways, this issue is related to the now-resolved issue "Which way to type greek letters in synonym list?" from 2010. The problem is that in this case, I have to use a macro even in the first input to \abbreviation (in brackets), because I don't know what it is in advance. In addition, if the second and third inputs to \abbreviation (in curly braces) are not expanded until the list is printed, then they will be empty/undefined at the time when they are needed.
I'm not as familiar with how to deal with expansion problems, so I could use someone's expertise here. Is there a simple way to define an abbreviation using the expanded values of macros as above? And is there a way to invoke an abbreviation/synonym at this level of abstraction? (Something like \inshort[\currentbtxtag]?)
Thanks!
Joey
On Sun, Aug 22, 2021 at 6:11 PM Joey McCollum < jmccollum20140511@gmail.com> wrote:
Just continuing to talk my way through the inner workings of the ConTeXt Publication modules. It looks like three "long" citation forms are defined in publ-imp-cite.mkvi:
\startsetups btx:cite:listelement \fastsetup{\s!btx:\s!cite:concat} \fastsetup{\s!btx:\s!cite:lefttext} \ifx\currentbtxfirst\empty \fastsetup{\s!btx:\s!cite:\s!empty} \else \texdefinition {\s!btx:\s!cite:inject} { \btxcitereference \currentbtxfirst } \fi \fastsetup{\s!btx:\s!cite:righttext} \stopsetups
\startsetups \s!btx:\s!cite:entry \fastsetup{\s!btx:\s!cite:concat} \fastsetup{\s!btx:\s!cite:lefttext} \btxhandleciteentry \fastsetup{\s!btx:\s!cite:righttext} \stopsetups
\startsetups \s!btx:\s!cite:footnote \startfootnote \fastsetup{btx:cite:entry} \stopfootnote \stopsetups
Intuitively, I would expect btx:cite:listelement [why not \s!btx:\s!cite:listelement?] to handle rendering a bibliographic entry for the bibliography proper (i.e., the list typically placed at the end of a document), while \s!btx:\s!cite:entry would handle in-text citations. The third setup, \s!btx:\s!cite:footnote, simply renders the "entry"-style citation in a footnote.
But as far as I can tell, the "listelement" setup is never used outside of publ-imp-cite.mkvi. Only the "entry" setup appears to be used. Meanwhile, the \btxcitereference and \btxhandleciteentry macros (invoked in these setups) appear to be defined in publ-ini.mkiv:
\unexpanded\def\btx_cite_reference_inject {\ifconditional\c_btx_cite_reference_injected \else \dontleavehmode \iftrialtypesetting \else \ifx\currentbtxbacklink\empty % can be made empty when combining author / year \else\ifnum\currentbtxbacklink>\zerocount \btx_cite_reference_inject_indeed \settrue\c_btx_cite_reference_injected \fi\fi \fi \fi}
...
\let\btxcitereference\btx_cite_reference_inject
...
\unexpanded\def\btxhandleciteentry {\dontleavehmode \begingroup \def\currentbtxcitealternative{entry}% \setbtxparameterset\s!cite\currentbtxcitealternative % needs checking \btxcitereference \btx_entry_inject \endgroup}
My next step will be to figure out what these are doing, but I'm still not sure if the module accommodates rendering in-text "entry" citations differently than citations in the list.
Joey
On Mon, Aug 9, 2021 at 8:55 AM Joey McCollum < jmccollum20140511@gmail.com> wrote:
Henning's suggestion for abbreviations should work fine for that issue. I could simply use the shorthand in the "series" and "journal" fields and set up the appropriate \abbreviation calls in the document or environment.
As for the larger issue of bibliographies, I've started working on publ-imp-sbl.lua and publ-imp-sbl.mkvi files. I knew I would need this for my own project soon, and I felt it would be useful to myself and the ConTeXt community if I could at least get a rudimentary version working. I'm presently using the reference for examples from the *SBL Handbook of Style*, 2nd edition, available at https://github.com/dcpurton/biblatex-sbl/blob/master/test/biblatex-sbl-examp... .
Like you say, some parts are tricky. SBL uses "entry"-style citations by default and doesn't seem to make use of other common alternatives (such as "authoryear"). I can think of some existing alternatives that might get used in specific cases (e.g., "author", "title"), but the recommended shorthand has the form "shortauthor, shorttitle" (i.e., the last name(s) of the author(s) only, followed by a comma and a shortened form of the title as specified in the "shorttitle" field). I could make this the sbl style's implementation of the "short" alternative, since the LaTeX-style bracketed number references are foreign to SBL style anyway, but if would be preferable just to introduce another alternative (something like "authortitle"), then I could also try to do that.
For my immediate purposes, I won't need much more than the @book, @article, @inbook, and @incollection entries, so my focus will be on getting those right, but if anyone is interested in helping, I'll gladly take help. (But it would probably be better to discuss the details in a separate e-mail thread.)
Joey
On Mon, Aug 9, 2021 at 4:12 AM Denis Maier via ntg-context < ntg-context@ntg.nl> wrote:
> > > > -----Ursprüngliche Nachricht----- > > Von: ntg-context
Im Auftrag von > Henning > > Hraban Ramm via ntg-context > > Gesendet: Samstag, 7. August 2021 22:40 > > An: mailing list for ConTeXt users > > Cc: Henning Hraban Ramm > > Betreff: Re: [NTG-context] Short forms and abbreviations in > bibliography > > > > > > > > > Am 07.08.2021 um 21:53 schrieb Joey McCollum via ntg-context > <ntg- > > context@ntg.nl>: > > > > > > A separate list of abbreviations would then list "LSAWS" > alongside "Linguistic > > Studies in Ancient West Semitic" (and likewise for other > journal/series > > abbreviations). > > > > Regarding abbreviations have a look at > > https://wiki.contextgarden.net/Command/definesynonyms > > > > It should be as easy as > > > > \abbreviation{LSAWS}{Linguistic Studies in Ancient West Semitic} > > > > The full name of \quote{LSAWS} is \infull{LSAWS}. > > > > \placelistofabbreviations > > > > > > I had a case where mostly abbreviations were used in the text but > the full name > > should appear in the index. > > I can provide the setup (including Lua functions), if it might > help you. > > > > > > Can’t help with bibliographies, sorry. > > SBL is a tricky beast anyway. There were some discussions regarding > implementing Chicago Manual of Style a couple of weeks ago. Develelopments > on that front could also be useful for SBL. Don't know what came out of > this though. > > Denis > > > > > Hraban > > ________________________________________________________________ > > ___________________ > > 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 > > ________________________________________________________________ > > ___________________ > > ___________________________________________________________________________________ > 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 > > ___________________________________________________________________________________ >