zref-clever, ntheorem, and texlive 2025
This is a lightly-edited email that I sent to a friend but realized could be posted as a rant on the internet. Perhaps it will even be useful to someone else. Enjoy!
Yeah, cleveref is the main thing I was thinking of when I mentioned "beyond annoying" and "inevitable decline". If you've been on stackexchange, maybe you saw that it hasn't been updated since 2018 and there is no contact with the author. [Someone we both know] had the same surprise you did when they got a new laptop in the semester before they were due to graduate. I think they decided to compile their thesis on an older machine rather than figure out what else to do.
I hope zref-clever will be a replacement, but the catch is that zref-clever only works with texlive 2025 or newer. So, even though I've known about this problem for some time, I couldn't really try it out until I was ready to fully commit to texlive 2025. I didn't want to change my tex installation while I was in the middle of other projects. Also, the zref-clever repository on github hasn't been updated for two years, while new issues have been reported as recently as last week. So, that's not a great sign.
I finally made the switch to texlive 2025 at the start of this year and (no surprise) it's not exactly a smooth transition. I'm having some conflicts between zref-clever and the ntheorem package---the latter is what I use to put endmarks on non-proof environments. I have something working, and I'll attach a zip file for you, but I'm only hacking it together while juggling other things, so there could be weird things that break. You should let me know if you find any such things; maybe I won't be able to fix them right away, but I would like to know. (Basically, I'm using this new setup in my current new project, so I hope I'll find and fix bugs as I go.)
The ntheorem package is another ticking time bomb---it hasn't been updated since 2011 and, while the author still appears to have a university website, that won't last forever. So, I'm also thinking about alternatives for that. The ntheorem package does much more than just endmarks, so I'm thinking about how to drop the rest and implement just the endmarks.
Anyway, the attached files will give a setup with zref-clever and ntheorem that works pretty well. In the comments, you'll see how confused I still am about all this. One amazing (amazingly annoying) detail is that these sty files still have to load cleveref, but not use it! That's because some of the other first-aid fixes for hyperref and cleveref (which I definitely don't understand) are somehow still needed with my combination of zref-clever, ntheorem, and amsthm. So, it's not a long-term solution, but it seems to work for now :/
If I ever get a setup that I am actually happy with, I plan to post it online and I will let you know [with a link here] if that happens! In the meantime, please do let me know if you [reader of this online post] notice some bugs. I will try to ignore them in the near-term, but eventually I will want a list.
tags: maybe-blog | info