Which is very much the intent of the Compile command.
We are asking for Scrivener include citation processing. I will give you an example:
Imagine I have a document of the form:
Here is a citation [@citekey]
Actually Scrivener will output (after compiling):
Here is a citation [@citekey]
If scrivener have a citation processor, we can add a file to the source with bibliographical data, let’s say, this one (.bib for example):
@article{citekey,
author = {Doe, John},
year = {2025},
title = {Paper Title},
journal = {Journal Name}
}
After the compilation, we would love to get the following output:
Here is the citation (Doe, 2025)
Bibliography
2025, Doe, John; *Paper Title*, in *Journal Title*
To be honest, the mess that today is the Academic Writing is due to the garbage behavour of a lot of scholars that insist to use piece of crap software and since they are unable to do anything else than use that crap (I am speaking especially about Microsoft Word, the King of Crap). They force all their students and collaborators to use the same crap. Now some universities spend a lot of money paying fees for this crap when a lot of open-source does the job years-light better. The Word crap is not suitable for academic writing, until now this crap does not have proper equation support or bibliography support, something that TeX, for example, have since 80’s!
Well, since a lot of these clowns runs departments and write the rules, we need to adapt ourselves to their digital letargy and illiteracy (it is like you giving up write, because the boss can not write, so you can not use this skill to better ‘comunicate’ with the boss). They make our live very hard, in all possible ways (and you are talking with someone that really was an editor of one journal). (Examples: they put the students to edit bibliography manually; to make index manually; etc. That is why Word is fast for them; Also, they spend money from founding to pay for ‘editorial services’, this is a joke).
Pandoc is a workaround to this situation, it’s produce consistent and competent output and allows you to use plain text for almost every publication. The other ‘competidor’ surely is TeX system (this one a beast, the best on the world) and it is vastly superior to pandoc, even not comparable.
Build an writing software on the top of TeX is a very dumb idea, I do not advise it to anyone. I really think that a Academic Writing software, today, needs to be done on the top of pandoc. Well, unless someone appears with a better solution, but I highly doubt this last one. Mostly because that, for today, pandoc is very well battle tested.
Which is also very much the wonderful (this one truly wonderful) UNIX philosphy.
@WritingGuy, thank you for providing a concrete example that will be better understood by those outside the sphere of academic writing.
Of course, .bib citation processing is exactly what the post-compilation Pandoc or Quarto steps do. And not just simple citations, but also cross-refs within the same work (in a book, for example), separate bibliographies per chapter rather than at the end of the whole work, endnotes/footnotes, marginalia, programmatic code execution, equations, figure generation, table of contents, table of figures, table of tables, columnar layout, etc. And the same source document can yield different products (e.g., PDF, html web site).
Many of us have hacked together our own systems, in some case using sophisticated Scrivener templates and a few scripts, in my case creating a totally separate Python app[1] to handle complex pre- and post- processing.
Scrivener should not do everything. It should remain a writing app. But there are a few tweaks to the Compiler, some $placeholder-tags, and export options that would make things much, much easier for academic writing. @nontroppo and I and many others have brainstormed these before: e.g., Thoughts for academic Markdown in a future version of Scrivener
For those interested, the incremental development of
squartois detailed here: Scrivener → Squarto ↩︎
Citation-heavy academic here (recently ret. but still busy): I strongly prefer a horses for courses approach to software (hence DTPro, Tinderbox,BE + Pandoc etc) and so no more need or want an ‘integrated workflow’ Scrivener to ‘write academic content’ (apparently) than I want to wear a Onesie.
In my recent projects, critical editions, I hacked TeX to output write a new auxiliary file in a .csv format (pretty easy with lua) and then processed all the cross-ref and index outside TeX with custom python scritps. This opened the door to use the Unicode Collation Algorithm and Pandas database management. Made my life much easier with multi-language index and comples cross-reference (with custom outputs for different chapters, pages, etc.)
If you are curious, the workflow was:
luatex file
python .csv
luatex file
After the python generating news .csv, I read this in the second compilation of luatex (In the first reading, no data returns 0). So no need to use xindy or inner lua process inside TeX. This approach also increasse the speed of compilation very much.
For sure Scrivener will naver have this level of hack and integration, neither pandoc will ever able to do this (just if you create custom crazy marks and then an scanner for the file searching regex patterns - The process will be extremly messy).
But the point is, this is a extemly special case, I will never suggest any software to be able to reproduce this workflow.
I agree with you that the basic academic workflow (from the Scrivener viewpoint it is just equation + citation + cross-ref integration to the compiler) would put the software as an powerhouse for academic writting too (not just paper, but entiry monographs!).
I do not know the apporach. that the developers will choose. But I am strongly advise to integrate the pandoc compile, as I said before. This one is battle tested and fits well this workflow.
The unique software that really has the feature required here is the BookEnds. The other ones are Note-Taking apps (Tinderbox) or database (DTPro). Again, we are saying over and over:
Process Citation (i.e., Scan Citation) is not reference manager.
This can be done eaasily with BookEnds with the added advantage that you have unlimited customisation of your citations and bibliography. In my experience Scrivener and BookEnds work seemlessly together. Why would Scrivener want to try do what BookEnds already does?
So don’t mind my saying but I do not see use case here unless I am missing something.
