Citation key aliases through `ids` field
I'm not 100% sure this is the right place to report this, so feel free to redirect me elsewhere.
BibLaTeX supports aliases of the same reference through the ids field. For example:
@article{benguirat2024,
ids = {ben2024blending},
title = {Blending {{Different Latency Traffic With Beta Mixing}}},
author = {Ben Guirat, Iness and Das, Debajyoti and Diaz, Claudia},
date = {2024-04},
journaltitle = {Proceedings on Privacy Enhancing Technologies},
shortjournal = {PoPETs},
volume = {2024},
number = {2},
pages = {464--478},
issn = {2299-0984},
doi = {10.56553/popets-2024-0059},
url = {https://petsymposium.org/popets/2024/popets-2024-0059.php},
urldate = {2025-07-02},
}
BibLaTeX now allows to use benguirat2024 and ben2024blending interchangeably, and will only generate one single ref in the bibliography for both \cite calls.
(This field is by default used through Zotero when importing BibTeX files; it basically sets tex.ids=ben2024blending in the references "extra" section as to be able to use both your "old" citation key and the new autogenerated one, while referring to the same ref in your LaTeX document.)
However, using pandoc + citeproc, like this:
pandoc --citeproc -t markdown-citations -s main.tex -f latex -t docx -o main.doc --bibliography=refs.bib --csl=$(CITATION_STYLE)
I'm getting [WARNING] Citeproc: citation ben2024blending not found, seemingly indicating that some component in this pipeline (presumably citeproc here) doesn't support this ids field.
Feel free to point out where changes would be required, and I'll be happy to conttribute my first Haskell patches here!
This is the function that reads a bibtex/biblatex file. Let me know if you need more guidance.
https://github.com/jgm/pandoc/blob/main/src/Text/Pandoc/Citeproc/BibTeX.hs#L63-L81
Actually it looks like we have some support for ids:
https://github.com/jgm/pandoc/blob/main/src/Text/Pandoc/Citeproc/BibTeX.hs#L375-L377
https://github.com/jgm/pandoc/blob/main/src/Text/Pandoc/Citeproc/BibTeX.hs#L638-L640
So the ids field is parsed into a field other-ids in a Reference.
It may be that we need to handle this in citeproc rather than pandoc. (And I see that you submitted this to jgm/citeproc, which I didn't notice before!)
Looking at the citeproc code, I see no support for other-ids.
It seems not to be a standard CSL variable.
We could add support for it here, but it would be somewhat ad hoc.
This would be in Citeproc.hs, makeReferenceMap. Basically you'd have to make sure you insert items into the Map not just with referenceId but with the result of looking up other-ids.