mixedmath

Explorations in math and programming
David Lowry-Duda



For a long time, when I wanted to cite papers on the arXiv, I would go to arxiv2bibtex.org, enter information, and then get back a some data. This was made by Sven S. Porst, it's free to use (as in beer), and it has its own github repository.

Then one day I wanted to programmatically create bibtex citations based on arxiv URLs. How hard would it be to adapt Sven's code1 1Sven also didn't include a LICENSE file for his repository. I would argue that the intentions are pretty clear. But I would also argue that it's not a very challenging program to rewrite anyway. for my uses?

It turns out that arxiv2bibtex.org does a small amount of processing on the queries. It was written several years ago and has a tiny python script in the background. Unfortunately, this script is intermingled with cgi code that runs the site. I need to do a small amount of work.

I set out to write my program for programmatic construction given lists of arxiv urls. The result is my version of arxiv_to_bibtex, a GPL (but still very simple) program.

The arxiv does a great job at making this as easy as possible. In fact the arxiv now has Export BibTeX Citation buttons on each paper. For example, navigating to this paper and clicking Export BibTeX Citation returns

@misc{lowryduda2025databaserigorousmaassforms,
      title={A database of rigorous Maass forms},
      author={David Lowry-Duda},
      year={2025},
      eprint={2502.01442},
      archivePrefix={arXiv},
      primaryClass={math.NT},
      url={https://arxiv.org/abs/2502.01442},
}

The arxiv is a triumph of modern science.

Further, the arxiv exposes a very convenient API that one can use to construct citations in whatever way you want. There are several obvious things that one wants to do. The bibliographic data is essentially static, but the citation key can be changed. I use the first author name (with a small amount of normalization, e.g. Lowry-Duda becomes lowryduda), then the year, and then the first "not unimportant word" of the title.

I rather like controlling the citation keys. And sometimes I want to get bibtex for a list of papers. And the arxiv API makes this all very simple. So I also wrote a pure javascript implementation2 2The hardest part about the conversion was adding a small amount of rate-limiting to be nice to the arxiv. and made it available on my site.

Go forth and use it! Or take it (all the code is GPL and trivial) and modify it to do what you really want it to do. I will continue to use it and thus appear to have superpowers occasionally.


Leave a comment

Info on how to comment

To make a comment, please send an email using the button below. Your email address won't be shared (unless you include it in the body of your comment). If you don't want your real name to be used next to your comment, please specify the name you would like to use. If you want your name to link to a particular url, include that as well.

bold, italics, and plain text are allowed in comments. A reasonable subset of markdown is supported, including lists, links, and fenced code blocks. In addition, math can be formatted using $(inline math)$ or $$(your display equation)$$.

Please use plaintext email when commenting. See Plaintext Email and Comments on this site for more. Note also that comments are expected to be open, considerate, and respectful.

Comment via email