Yes, I haven't added any code to check for the useibid or useidem options in list citations; they are only used for in-text citations in the SBL specification definition. The distinction between \setupbtx[sbl:\s!list] and \setupbtx[sbl:\s!cite] should allow us to specify their options separately. For list citations, we probably should add a "sameauthor" option, with "rule" (draw a horizontal rule for repeated authors), "empty" (leave a blank space the size of the "margin" option), and "ditto" (e.g., a dumb quote sign, or "Idem") as potential values, since all three of these options are currently supported in publ-imp-chicago.mkvi and publ-imp-sbl.mkvi, but as far as I know, they always default to the "rule" setup. Joey On Tue, Sep 21, 2021 at 12:52 AM wrote: > Cool. > > I don't know about your particular solution, but will probably want to > make sure to have different variables for citations in the main text and in > the notes. > > Denis > > > > ________________________________________ > Von: ntg-context im Auftrag von Joey > McCollum via ntg-context > Gesendet: Dienstag, 21. September 2021 02:22:49 > An: mailing list for ConTeXt users > Cc: Joey McCollum > Betreff: [NTG-context] Ibid. and idem support for bibliographies (and > variable scope more generally) > > Hi, > > I've found a way to implement ibid. and idem support in the SBL > specification under development at > https://github.com/jjmccollum/context-sbl (this e-mail essentially > repeats my comments in https://github.com/jjmccollum/context-sbl/issues/5), > but I'm not sure if my solution is a recommended way to solve the problem, > and I'm curious about why the more straightforward approach doesn't work. > > I've added useibid and useidem options for the \definebtx command (making > them language-dependent by adding them to mult-def.lua, which seems to be > how the other options have been implemented). Ideally, I'd like to follow > the pattern of the chicago:list:sameauthor setup and use a macro similar to > \btxdoifsameaspreviouselse. But since \btxdoifsameaspreviouselse relies on > the indexed structure of the bibliographic list to determine what the > "previous" entry is, it won't work for my purposes; I need to retrieve the > tag of the last entry passed to the \cite command. > > I ended up making this work by initializing a global variable via > > ``` > \setxvariables[btx:sbl][previousinlinetag=\empty] > ``` > > in the publ-imp-sbl.mkvi file, resetting it at the end of each citation via > > ``` > \setxvariables[btx:sbl][previousinlinetag=\currentbtxtag] > ``` > > and checking it in the appropriate places via > > ``` > getvariable{btx:sbl}{previousinlinetag} > ``` > > I initially tried to do this with a simple macro > \btx_sbl_previousinlinetag defined in publ-imp-sbl.mkvi (in the same scope > as the rest of the specification), but attempting to reset it in the cite > setups with \let or \def didn't work. Why doesn't this work? Is the setup > for a cite alternative executed in its own scope in a way that would > prevent me from updating a variable defined in the scope of the rendering > specification? And is there a way to do this that is preferable to using > global variables? > > Thanks! > > Joey >