tectonic
tectonic copied to clipboard
bibtex min crossrefs
I've been heavily relying in the -min-crossrefs=1000 flag of bibtex? How can I pass this flag to tectonic? I can't find a way.
The version of bibtex included in Tectonic does support this feature internally, but we don't currently have any way for the user to change the setting. I'm not familiar with its purpose — can you please explain to me why you sometimes use this option? Thanks.
Sorry for the late response! We use the flag in my research group extensively as we have a huge database of references and cross-references to make the setup as modular as possible. Due to the nature of our architecture we use -min-crossrefs to produce "flat" references instead of cross-references. You can see an example here. Do you think you can allows access to this flag in the next version? It's a deal breaker for me right now :(
ping. any news about this?
I'm afraid not:
Part of the reason is that this particular feature request ties in to a bigger architectural design question that I've been struggling with. I see the need to control parameters like these, but I don't want the tectonic CLI program to gain a ridiculous number of command line arguments. Instead I tend to think that it should act more like the Rust cargo tool, where the build settings are stored in a file named something like Tectonic.toml and all the user needs to do is run something like tectonic build.
That change would totally break the command line experience, and I think it would do so in a way that would be very annoying to users. On the other hand, I think it's the right thing to do, and if that's the case, the earlier it's done, the better.
Anyway, the basic "problem" is that I'm not sure how to add a UI knob to control this option in a way that will be good for the project long-term. Here are two ideas:
- If you can compile Tectonic yourself, I believe it is literally a one-line patch to change the default value of this setting. If you need it to stay at zero for other uses, you could have a special copy of the executable named something like
tectonic_mcr1kused for the relevant documents. - Oh! I just thought of this: I could add a flag along the lines of the
-Zfamily used by the Rust toolchain. These activate special experimental features. In Rust, they are only allowed on "nightly" compilers, not the "stable" ones, so people don't accidentally start using them until they're formally blessed. Tectonic doesn't have the infrastructure to go that far, but it could at least emit a big warning that your flag might do bad things or go away in the future.
I like this -Z flag idea. You would get your feature sooner rather than later, at the cost that this feature would be considered "unstable" and so liable to change or go away without much warning in the future. How does that sound?
Sure! Thanks a lot! May I ask though (and please forgive me total ignorance for the internals and the philosophy you want to follow):
- why not support a global config file like:
~/.tectonic.conf(please use XDG if you go that way)? - or why not giving a general flag like
--json-config="<my-json-config>"so I can wrap the tool with a bash alias?
ping
I appreciate your patience and persistence on this. I've been hung up trying to get Windows support working, since someone contributed a PR getting Tectonic most of the way there ... but this is still on the radar!
#657 introduces the -Z min-crossrefs=<num> flag to change this e.g. -Z min-crossrefs=1000 to set it to 1000.
The new support is released in version 0.2.0, by the way. Sorry that it took, uh, two and half years to deliver this pretty straightforward feature ... and thank you to @ralismark for finally making it happen!
Hey @andronat, there's also the possibility of changing that directly in the package, like:
\usepackage[mincrossrefs=1000]{biblatex}
The issue seems fixed with the new -Z min-crossrefs option above. Are you ok with us closing it?
ping @andronat
Thanks!
@andronat I'm curious: are any of the above mentioned options workable solutions for your research group use case?
both actually worked! I mainly use the -Z for compatibility with my other colleagues that use other compilers.
Awesome thx! 🚀
Thanks for following up @mnrvwl and confirming @andronat!